home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / docs / inter45c / interrup.l < prev    next >
Text File  |  1995-03-26  |  258KB  |  6,865 lines

  1. Interrupt List, part 12 of 12
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
  3. --------V-7F---------------------------------
  4. INT 7F - Halo88 - API
  5.     BX = function number (see #2451)
  6.     additional parameters on stack
  7. Return: ???
  8. Program: Halo88 is a suite of graphics routines
  9. Note:    according to Stuart Kemp, the code appears to make no provisions for
  10.        chaining
  11.  
  12. (Table 2451)
  13. Values for Halo88 API function:
  14.  64h    arc
  15.  65h    bar
  16.  66h    box
  17.  67h    circle
  18.  68h    clr
  19.  69h    default hatch style
  20.  6Ah    default line style
  21.  6Bh    delhcur
  22.  6Ch    delln / deltcur
  23.  6Dh    ellipse
  24.  6Eh    fill
  25.  6Fh    flood
  26.  70h    flood2
  27.  71h    init graphics
  28.  72h    init hcur
  29.  73h    init marker
  30.  74h    init tcur
  31.  75h    inqarc
  32.  76h    inqbknd
  33.  77h    inqclr
  34.  78h    inqerr
  35.  79h    inqgcur
  36.  7Ah    inqhcur
  37.  7Bh    inqmarker
  38.  7Dh    inqtcur
  39.  7Eh    inqtext
  40.  7Fh    lnabs
  41.  80h    lnrel
  42.  81h    markerabs
  43.  82h    markerrel
  44.  83h    moveabs
  45.  84h    movehcurabs
  46.  85h    movehcurrel
  47.  86h    moverel
  48.  87h    movetcurabs
  49.  88h    movetcurrel
  50.  89h    movefrom
  51.  8Ah    moveto
  52.  8Bh    pie
  53.  8Ch    polylnabs
  54.  8Dh    polylnrel
  55.  8Eh    ptabs
  56.  8Fh    ptrel
  57.  91h    setasp
  58.  92h    set color
  59.  93h    set font
  60.  94h    set hatch    style
  61.  95h    set line style
  62.  97h    settext
  63.  98h    set text color
  64.  99h    btext
  65.  9Ah    setseg
  66.  9Bh    display
  67.  9Ch    setscreen
  68.  9Eh    close graphics
  69.  9Fh    ftinit
  70.  A0h    ftlocate
  71.  A1h    ftext
  72.  A5h    set viewport
  73.  A6h    set window
  74.  A7h    set world
  75.  AAh    ftcolor
  76.  ACh    initlp
  77.  ADh    inqasp
  78.  AEh    inqdev
  79.  AFh    inqdisplay
  80.  B0h    inqft
  81.  B1h    inqftcolor
  82.  B2h    inqinterlace
  83.  B3h    inqlpa
  84.  B4h    inqlpg
  85.  B5h    inqmode
  86.  B6h    inqscreen
  87.  B7h    inqversion
  88.  B8h    roam
  89.  B9h    scroll
  90.  BAh    setieee
  91.  BBh    set interlace
  92.  BCh    shift
  93.  BDh    start graphics
  94.  BEh    vpan
  95.  CBh    gwrite
  96.  CCh    gread
  97.  CDh    setxor
  98.  CEh    rbox
  99.  CFh    rcir
  100.  D0h    rlnabs
  101.  D1h    rlnrel
  102.  D2h    delbox
  103.  D3h    delcir
  104.  D5h    setseg2
  105.  DCh    worldoff
  106.  DDh    mapwtod
  107.  DEh    mapdtow
  108.  DFh    mapwton
  109.  E0h    mapntow
  110.  E1h    mapdton
  111.  E2h    mapntod
  112.  E3h    inqworld
  113.  E4h    inqviewport
  114.  E5h    set line width
  115.  E6h    lnjoint
  116.  E7h    set locator
  117.  E8h    read locator
  118.  E9h    setdev
  119.  EBh    setstext
  120.  ECh    setstclr
  121.  EDh    setstang
  122.  EEh    stext
  123.  EFh    inqstext
  124.  F0h    setdegree
  125.  F1h    inqstsize
  126.  F2h    polyfabs
  127.  F3h    polyfrel
  128.  F4h    inqdrange
  129.  F5h    inqstang
  130.  F6h    orglocator
  131.  F7h    inqlocator
  132.  F8h    inqarea
  133.  F9h    setipal
  134.  FAh    setborder
  135.  FBh    inqcrange
  136.  FEh    setclip
  137.  FFh    fcir
  138. 100h    setcrange
  139. 101h    setdrange
  140. 102h    setlattr
  141. 103h    polycabs
  142. 104h    polycrel
  143. 108h    memcom
  144. 109h    memexp
  145. 10Ah    memmov
  146. 10Eh    movefx
  147. 10Fh    movetx
  148. 110h    inqrgb
  149. 111h    save image
  150. 112h    restore image
  151. 113h    setapal
  152. 114h    setxpal
  153. 118h    inqtsize
  154. 12Eh    gprint
  155. 130h    setprn
  156. 131h    setpattr
  157. 133h    setbattr
  158. 135h    pexpand
  159. 136h    ptnorm
  160. 137h    pfnorm
  161. 13Bh    inqprn
  162. 13Ch    lopen
  163. 13Dh    lclose
  164. 13Eh    lappend
  165. 13Fh    lrecord
  166. 140h    lswitch
  167. 142h    inqfun
  168. 15Dh    lsetup
  169. 15Eh    lrest
  170. 15Fh    lsave
  171. --------N-7F---------------------------------
  172. INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
  173.     AL = request ID
  174.         01h "Request"/"RequestDirect"
  175.         ES:BX -> pRq
  176.         DX ignored
  177.         04h "Wait"
  178.         ES:BX -> ppMsgRet
  179.         DX = exchange
  180.         05h "AllocExch"
  181.         ES:BX -> pExchRet
  182.         06h "DeAllocExch"
  183.         DX = exchange
  184.         07h "Check"
  185.         ES:BX -> ppMsgRet
  186.         DX = exchange
  187.     CX = 4354h ('CT')
  188. Return: AX = status
  189.         0000h successful
  190. --------S-7F---------------------------------
  191. INT 7F - Telebit ACS SERIAL I/O
  192.     ES:SI-> parameter block (see #2452)
  193. Return: CF set on error
  194.     CF clear on success
  195. Notes:    the signature "PDGATEWRKSTNIF" appears just prior to the interrupt
  196.       handler; this serves as the installation check
  197. Index:    installation check;Telebit ACS Serial I/O
  198.  
  199. Format of Telebit ACS parameter block:
  200. Offset    Size    Description    (Table 2452)
  201.  00h    BYTE    command (see #2453)
  202.  01h    BYTE    gateway number
  203.  02h    BYTE    reserved
  204.  03h    BYTE    port
  205.  04h 17 BYTEs    auxiliary buffer
  206.  15h    BYTE    session
  207.  16h    WORD    count of bytes passed to API
  208.  18h    DWORD    buffer pointer passed to/from API
  209.  1Ch    WORD    count of bytes passed from API
  210.  1Eh    BYTE    return code (see #2454)
  211.  
  212. (Table 2453)
  213. Values for Telebit ACS command:
  214.  3Ch    status
  215.  3Dh    connect
  216.  3Eh    disconnect
  217.  3Fh    read
  218.  40h    data/command write
  219.  41h    clear receive buffer
  220.  42h    get configuration
  221.  43h    get receiver status
  222.  44h    raw write
  223.  45h    search servers
  224.  46h    set transmit buffer size
  225.  
  226. (Table 2454)
  227. Values for Telebit ACS return code:
  228.  00h    success
  229.  01h    invalid session
  230.  05h    servername invalid
  231.  06h    NetWare fileserver bindery is locked
  232.  07h    communication server not active
  233.  08h    general failure in NetWare fileserver
  234.  09h    not logged into a fileserver
  235.  10h    connection table full
  236.  11h    no response from communication server
  237.  12h    connection attempt terminated abnormally
  238.  13h    connection refused - no sessions available
  239.  14h    gateway number/port already in use
  240.  15h    invalid connection response
  241.  16h    port invalid
  242.  17h    incorrect version in server response
  243.  18h    gateway number/port combination not configured
  244.  19h    initialization has not been completed
  245.  20h    no more sockets are available
  246.  21h    no active poolname
  247.  23h    FATAL internal interface error
  248.  24h    registration of host workstation failed - name is already in use
  249.  25h    registration of host workstation failed - workstation name table full
  250.  26h    registration of host workstation failed - only one session may be
  251.       registered for dial-in
  252.  FFh    Telebit ACS API is busy - retry later
  253. --------N-7F---------------------------------
  254. INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE
  255. Notes:    the installation check consists of checking for the signature "Lynn"
  256.       in the four bytes preceding the interrupt handler; if present, the
  257.       current program is running as a DOS task on a non-dedicated NetWare
  258.       2.x file server.
  259.     Before placing the server into "console" mode, it is recommended that
  260.       NetWare broadcast messages be disabled with INT 21/AH=DEh/DL=00h.
  261. SeeAlso: INT 21/AH=DEh/DL=04h
  262. Index:    installation check;non-dedicated NetWare server
  263. --------S-7F---------------------------------
  264. INT 7F U - YTERM - ???
  265. SeeAlso: INT 7E"YTERM"
  266. --------E-7F---------------------------------
  267. INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7
  268. Notes:    this vector is overwritten when GO32 starts but is not restored by
  269.       early versions of the DOS extender
  270.     the newest versions of GO32 dynamically allocate the vectors used
  271.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  272. SeeAlso: INT 0F,INT 7E"GO32"
  273. ----------7F---------------------------------
  274. INT 7F - Canon IXHND2 Scanner Interface
  275. --------N-7F---------------------------------
  276. INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
  277. Notes:    the words at C800h:0000h and C800h:0002h will both be 584Eh if the
  278.       MW386 multitasking system is present (i.e. signature "NXNX")
  279.     NTNX allows its API to be placed on a different interrupt than 7Fh at
  280.       load time.  To determine the actual vector used, open the device
  281.       "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with
  282.       INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will
  283.       be the actual interrupt number being used; the other interrupts may
  284.       be found with INT 7F/AH=09h/CL=03h
  285. --------N-7F---------------------------------
  286. INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
  287. Note:    a program may determine that it is running on an ANSK Slave by checking
  288.       the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this
  289.       address is RAM, and should not be written.  However, the above check
  290.       will not work on Slaves with <1MB RAM or those using the SLIM.SYS
  291.       device driver
  292. --------N-7F00-------------------------------
  293. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
  294.     AH = 00h
  295.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  296. Return: AL = status (see #2455)
  297.     AH = semaphore owner if status=02h
  298. SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h
  299.  
  300. (Table 2455)
  301. Values for Alloy function status:
  302.  00h    successful
  303.  01h    invalid function
  304.  02h    semaphore already locked
  305.  03h    unable to lock/unlock semaphore
  306.  04h    semaphore space exhausted
  307.  05h    host/target PC did not respond (NTNX)
  308. --------T-7F00-------------------------------
  309. INT 7F - MultiLink Advanced v1.0+ - ENQUEUE SYSTEM RESOURCE
  310.     AH = 00h
  311.     BX = resource identifier
  312.     AL = wait flag
  313. Return: AL = status
  314.         00h successful
  315.         01h resource not available
  316.         02h user error
  317. Notes:    the installation check consists of ensuring that the interrupt vector
  318.       is not pointing at segment 0000h, then checking whether the byte
  319.       at offset 0000h in the interrupt handler's segment is E9h
  320.     function will not return until the resource is available if AL is
  321.       nonzero on entry
  322.     a maximum of 100 resources may be enqueued at once
  323. SeeAlso: AH=01h"MultiLink"
  324. --------N-7F00-------------------------------
  325. INT 7F - G8BPQ v4.07+ - GET NODE/SWITCH VERSION AND DESCRIPTION
  326.     AH = 00h
  327.     ES:SI -> buffer for "USERS" text string
  328. Return: AX = 4250h ('BP') if installed
  329.     BX = 5120h ('Q ') if installed
  330.     DX = version number (DH = major, DL = minor)
  331.     CX = length of returned string
  332. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  333.       John Wiseman which allows a PC to act as a node in an AX.25 network
  334. SeeAlso: AH=01h"G8BPQ",AH=09h"G8BPQ"
  335. --------N-7F01-------------------------------
  336. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
  337.     AH = 01h
  338.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  339. Return: AL = status (see #2455)
  340.     AH = semaphore owner if status=02h
  341. SeeAlso: AH=00h,AH=02h,AH=41h
  342. --------T-7F01-------------------------------
  343. INT 7F - MultiLink Advanced v1.0+ - DEQUEUE SYSTEM RESOURCE
  344.     AH = 01h
  345.     BX = resource identifier
  346. Return: AL = status
  347.         00h successful
  348.         02h user error
  349. Note:    the indicated resource may be dequeued even if it was enqueued by
  350.       another task
  351. SeeAlso: AH=00h"MultiLink",AH=02h"MultiLink"
  352. --------V-7F01-------------------------------
  353. INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS
  354.     AH = 01h
  355. Return: BX = 1234h if installed
  356.         DX:AX -> array of FAR entry points
  357.         CH = driver major version
  358.         CL = driver minor version
  359. Note:    TIGACD 2.05 returns CF set on unrecognized functions in AX
  360. SeeAlso: AX=1234h,AX=4321h
  361. --------N-7F01-------------------------------
  362. INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK
  363.     AH = 01h
  364.     AL = stream number (01h-40h)
  365.     CL = new application flags
  366.         bit 7: monitored frames available via AH=0Bh"G8BPQ"
  367.     DL = new application mask
  368. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  369.       John Wiseman which allows a PC to act as a node in an AX.25 network
  370. Range:    INT 00h to INT FFh, set in configuration file BPQCFG.TXT for v4.03+
  371.       (earlier versions were hard-wired for INT 7F)
  372. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=0Bh"G8BPQ"
  373. --------I-7F0104BX0000-----------------------
  374. INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
  375.     AX = 0104h (HLLAPI gate ID)
  376.     BX = 0000h
  377.     DS:SI -> parameter control block (see #2456)
  378. Return: parameter control block updated
  379. Note:    the installation check for the Novell HLLAPI TSR is the signature
  380.       string "CXI" (for the company Novell bought) immediately prior to
  381.       the interrupt handler
  382. SeeAlso: AX=0105h,AX=ABCDh
  383.  
  384. Format of HLLAPI parameter control block:
  385. Offset    Size    Description    (Table 2456)
  386.  00h  3 BYTEs    signature = 'PCB'
  387.  03h    BYTE    function number (see #2457,#2458)
  388.  04h    WORD    segment of control string
  389.  06h    WORD    offset of control string
  390.  08h    WORD    length of control string, unless explicit end-of-str char set
  391.  0Ah    BYTE    unused (IBM)
  392.         ControlString[0] (Rabbit)
  393.  0Bh    WORD    return code (see #2460)
  394.  0Dh    WORD    maximum length of control string (IBM)
  395.         unused (Rabbit)
  396.  
  397. (Table 2457)
  398. Values for HLLAPI function number:
  399.  00h    OEM function (Query system for Attachmate implementation)
  400.  01h    Connect presentation space
  401.  02h    Disconnect presentation space
  402.  03h    Send string of keystrokes as if typed from keyboard
  403.  04h    Wait ~60s, returns status of presentation space
  404.  05h    Copy current presentation space into a user-defined buffer
  405.  06h    Search presentation space for first occurrence of a specified string
  406.  07h    Query cursor location in current presentation space
  407.  08h    Copy part or all of current presentation space into user buffer
  408.  09h    Set session parameters; parameters vary by vendor (see #2459)
  409.  0Ah    Get info on sessions currently connected
  410.  0Bh    Lock current presentation space
  411.  0Ch    Unlock previously locked presentation space
  412.  0Dh    Return copy of operator info area (OIA) of current presentation space
  413.  0Eh    get attribute byte for given position in the current presentation space
  414.  0Fh    copy string of characters to the current presentation space
  415.  10h    workstation control functions
  416.  11h    storage manager functions, intended primarily for BASIC applications
  417.     (not implemented by Rabbit)
  418.  12h    set delay period in half-second intervals
  419.  14h    get info on level of workstation support used
  420.  15h    reset session parameters to default values
  421.  16h    get detailed info on the current session
  422.  17h    start host notification to application on presentation sp or OIA update
  423.  18h    check host update when host notification enabled
  424.  19h    stop host notification
  425.  1Eh    search field within current presentation space for string
  426.  1Fh    get first positionof a selected field in the current presentation space
  427.  20h    get length of specified field
  428.  21h    copy string into a specified field
  429.  22h    copy specified field into a user-defined buffer
  430.  23h    create alternate presentation space (IBM only), don't use with BASIC
  431.  24h    switch to alternate presentation space (IBM only), not with BASIC
  432.  25h    display cursor in specified area (IBM only), don't use with BASIC
  433.  26h    display alternate presentation space (IBM only), don't use with BASIC
  434.  27h    delete alternate presentation space (IBM only), don't use with BASIC
  435.  28h    set cursor
  436.  29h    start Close Intercept
  437.  2Ah    query Close Intercept
  438.  2Bh    stop Close Intercept
  439.  32h    start intercepting keystrokes to allow filtering
  440.  33h    get keystrokes after turning on interception
  441.  34h    notify operator when keystroke rejected by filter subroutine
  442.  35h    stop intercepting keystrokes
  443.  5Ah    send file
  444.  5Bh    receive file
  445.  5Ch    run a program (not implemented by Rabbit)
  446.  5Dh    execute DOS command (not implemented by Rabbit)
  447.  63h    change presentation space position to PC display row/col or vice versa
  448.  65h    connect to Window Services
  449.  66h    disconnect from Window Services
  450.  67h    set/query window coordinates
  451.  68h    set/query window status
  452.  69h    change presentation space name
  453.  78h    connect Structured Fields
  454.  79h    disconnect Structured Fields
  455.  7Ah    query size of communications buffer
  456.  7Bh    allocate communications buffer
  457.  7Ch    free communications buffer
  458.  7Dh    get request completion state
  459.  7Eh    read Structured Fields
  460.  7Fh    write Structured Fields
  461.  FFh    Get info on DCA implementation
  462.  
  463. (Table 2458)
  464. Values for LLAPI function number:
  465.  80h    initialize LLAPI (internal call)
  466.  83h    set Session ID (one-character ID)
  467.  84h    read Session ID (one-character ID)
  468.  85h    lock 327x keyboard
  469.  86h    unlock 327x keyboard
  470.  87h    wait for Clear to Send
  471.  88h    type ASCII character
  472.  89h    type 327x key
  473.  8Ah    read keyboard lock state
  474.  8Fh    force screen update
  475.  90h    view session
  476.  91h    relinquish (suspend foreground until background becomes idle)
  477.  92h    poke screen character
  478.  93h    poke translated character
  479.  94h    peek screen character
  480.  95h    peek translated character
  481.  96h    set cursor position
  482.  97h    send scan code (Rabbit only)
  483.  98h    synchronize (returns after keystroke queue empty)
  484.  99h    type PC key (Rabbit only)
  485.  
  486. (Table 2459)
  487. Values for HLLAPI Function 09h Session Parameters:
  488.  ASCII        ??? (Rabbit only)
  489.  ATTRIB        return attributes in hex
  490.  NOATTRIB    return attributes as blanks
  491.  CONPHYS    make physical connection
  492.  CONLOG        only make logical connection
  493.  EAB        copy extended attribute bytes along with data
  494.  NOEAB        copy data only
  495.  ESC=n        set escape character to "n" (default '@')
  496.  EOT=n        set end of string character (default 00h)
  497.  FPAUSE        full-duration pause
  498.  FTNOWAIT    return immediately from functions 5Ah and 5Bh (Rabbit only)
  499.  FTWAIT        wait for file transfer to complete (Rabbit only)
  500.  IPAUSE        interruptable pause
  501.  RABESC        ??? (Rabbit only)
  502.  NORABESC    ??? (Rabbit only)
  503.  SCANCODE    ??? (Rabbit only)
  504.  STRLEN        use explicit string lengths
  505.  STREOT        use terminated strings
  506.  SRCHALL    search entire presentation space
  507.  SRCHFROM    search from specified offset
  508.  SRCHFRWD    search forward from position 1
  509.  SRCHBKWD    search backward from last position in presentation space
  510.  TIMEOUT=n    ??? (Rabbit only)
  511.  TWAIT        wait specified time for keyboard ready
  512.  LWAIT        wait until keyboard ready
  513.  NWAIT        no wait
  514.  TRON        enable tracing
  515.  TROFF        disable tracing
  516.  AUTORESET    send reset before sending keys with function 03h
  517.  NORESET    don't send reset
  518.  QUIET        don't display messages sent with INT 21/AH=09h
  519.  NOQUIET    allow messages to be displayed
  520.  TIMEOUT=n    set timeout in 30-second intervals, 0 = wait until ^Break
  521.  XLATE        translate extended attribute bytes
  522.  NOXLATE    don't translate
  523.  NEWRET        use HLLAPI v3.0 return code conventions
  524.  OLDRET        use HLLAPI v2.0 return code conventions
  525.  
  526. (Table 2460)
  527. Values for Windows HLLAPI return code:
  528.  00h    successful
  529.  01h    Presentation Space not connected/requested size unavailable
  530.  02h    invalid function or parameter error/invalid block ID
  531.  03h    file transfer complete
  532.  04h    file transfer complete (segmented)/Presentation Space busy
  533.  05h    inhibited or keyboard locked
  534.  06h    data truncated
  535.  07h    invalid Presentation Space position
  536.  08h    operation not available
  537.  09h    system error
  538.  0Ah    blocking error
  539.  0Bh    resource not available
  540.  0Ch    session stopped
  541.  14h    undefined key combination
  542.  15h    OIA updated
  543.  16h    Presentation Space updated
  544.  17h    both Presentation Space and OIA updated
  545.  18h    no such field
  546.  19h    no keystrokes available
  547.  1Ah    Presentation Space or Operator Information Area changed
  548.  1Bh    file transfer aborted
  549.  1Ch    zero-length field
  550.  1Eh    cursor type invalid
  551.  1Fh    keystroke overflow
  552.  20h    another application is already connected
  553.  22h    message sent to host cancelled
  554.  23h    transmission from host cancelled
  555.  24h    lost contact with host
  556.  25h    function successful
  557.  26h    function incomplete
  558.  27h    a DDM session is already connected
  559.  28h    disconnected, but asynchronous requests still pending
  560.  29h    buffer already in use
  561.  2Ah    no matching request found
  562. 12Dh    invalid function number
  563. 12Eh    file not found
  564. 131h    access denied
  565. 134h    out of memory
  566. 136h    environment invalid
  567. 137h    format invalid
  568. 270Eh (9998) invalid Presentation Space ID
  569. 270Fh (9999) invalid row or column code
  570. ---Windows HLLAPI extensions---
  571. F000h    asynchronous call already in progress
  572. F001h    invalid asynchronous task ID
  573. F002h    blocking call cancelled
  574. F003h    underlying subsystem not started
  575. F004h    unsupported application version
  576. --------V-7F0105-----------------------------
  577. INT 7F - IBM 8514/A Adapter Interface (HDILOAD.EXE)
  578.     AX = 0105h
  579. Return: CF set on error
  580.     CF clear if successful
  581.         CX:DX -> array of FAR pointers to entry points (see #2461)
  582. Note:    most functions are invoked by pushing the DWORD parameter block pointer
  583.       and then performing a FAR call via the appropriate vector of the
  584.       entry point array, placing the FAR address of the function's
  585.       parameter block on the top of the stack
  586. SeeAlso: AX=0104h,AX=0106h,AX=ABCDh
  587.  
  588. (Table 2461)
  589. Values for HDILOAD function number: (do FAR call via entry_points+4*function)
  590.  08h    HOPEN    Open Adapter (see #2493)
  591.  09h    HSMX    Set Mix (see #2522)
  592.  10h    HINT    Interrupt (see #2489)
  593.  13h    HLDPAL    Load Palette (see #2490)
  594.  15h    HBBW    BitBLT Write Image Data (see #2476)
  595.  17h    HBBR    BitBLT Read Image Data (see #2477)
  596.  18h    HBBCHN    Chained Data Go (see #2475)
  597.  19h    HBBC    BitBLT Copy Data (see #2474)
  598.  1Dh    HQMODE    Get Current Mode (see #2499)
  599.  20h    HRECT    Fill Rectangle (see #2501)
  600.  22h    HCLOSE    Close Adapter and place in quiescent state (see #2482)
  601.  30h    HINIT    Initialize State (see #2488)
  602.  31h    HSYNC    Synchronize Adapter (see #2527)
  603.  39h    HSPAL    Save Palette (see #2524)
  604.  3Ah    HRPAL    Restore Palette (see #2504)
  605.  ???    HSGQ    Set Graphics Quality (see #2513)
  606.  ???    HSCOORD    Set Coordinate Type (see #2510)
  607.  ???    HESC    Escape, Terminate Processing (see #2487)
  608.  ???    HSBCOL    Set Background Color (see #2505)
  609.  ???    HSBP    Set Bit Plane Controls (see #2506)
  610.  ???    HSCMP    Set Color Comparison Register (see #2508)
  611.  ???    HSCOL    Set Color (see #2509)
  612.  ???    HSHS    Set Scissors (clipping rectangle) (see #2514)
  613.  ???    HXLATE    Assign Text Color (see #2528)
  614.  ???    HQMODES    Get Adapter Modes (see #2500)
  615.  ???    HQDPS    Get Drawing Process State Size (see #2498)
  616.  ???    HQDFPAL    Get Default Palette (see #2497)
  617.  ???    HQCOORD    Get Coordinate Type (see #2495)
  618.  ???    HQCP    Get Current Position (see #2496)
  619.  ???    HSMODE    Change Mode (see #2520)
  620.  ???    HLINE    Draw Line at Given Position (see #2491)
  621.  ???    HCLINE    Draw Line at Current Position (see #2481)
  622.  ???    HRLINE    Draw Line Relative from Given Position (see #2502)
  623.  ???    HCRLINE    Draw Line Relative at Current Position (see #2484)
  624.  ???    HSLT    Set Line Type (see #2517)
  625.  ???    HSLW    Set Line Width (see #2519)
  626.  ???    HSLPC    Save Line Pattern Count (see #2516)
  627.  ???    HRLPC    Restore Line Pattern Count (see #2503)
  628.  ???    HCBBW    BitBLT Write Image Data at Current Position (see #2478)
  629.  ???    HBAR    Begin Area (see #2473)
  630.  ???    HEAR    End Area (see #2485)
  631.  ???    HSPATT    Set Pattern (see #2525)
  632.  ???    HSPATTO    Set Pattern Reference Point (see #2526)
  633.  ???    HEGS    Erase Graphics Screen (see #2486)
  634.  ???    HSCP    Set Current Position (see #2511)
  635.  ???    HMRK    Set Marker (see #2492)
  636.  ???    HCMRK    Set Marker at Current Position (see #2483)
  637.  ???    HSMARK    Set Marker Shape (see #2521)
  638.  ???    HSCS    Set Character Set (see #2512)
  639.  ???    HCHST    Write Character String at Given Position (see #2480)
  640.  ???    HCCHST    Write Character String at Current Position (see #2479)
  641.  ???    HSCELL    Set Cell Size for Alphanumeric Text (see #2507)
  642.  ???    ABLOCKMFI Write Character/Attribute Block MFI (see #2464)
  643.  ???    ABLOCKCGA Write Character Block CGA (see #2462)
  644.  ???    AERASE    Erase Rectangle (see #2467)
  645.  ???    ASCROLL Scroll Rectangle (see #2468)
  646.  ???    ACURSOR    Set Alphanumerics Cursor Position (see #2466)
  647.  ???    ASCUR    Set Alphanumeric Cursor Shape (see #2469)
  648.  ???    ASFONT    Set Font (see #2470)
  649.  ???    AXLATE    Assign Alphanumeric Color (see #2472)
  650.  
  651. Format of ABLOCKCGA parameter block:
  652. Offset    Size    Description    (Table 2462)
  653.  00h    WORD    000Ah (length of following data)
  654.  02h    WORD    top-left coordinate of character block
  655.  04h    WORD    width of block
  656.  06h    DWORD    -> block of WORDs describing characters (see #2463)
  657.  0Ah    BYTE    length of block in characters
  658.  0Bh    BYTE    highlight attribute
  659.         bit 4: transparent background
  660.         bit 5: overstrike
  661.         bit 6: reverse video
  662.         bit 7: underscore
  663. SeeAlso: #2464
  664.  
  665. Bitfields for one character in ABLOCKCGA character block:
  666. Bit(s)    Description    (Table 2463)
  667.  3-0    foreground attribute
  668.  7-4    background attribute
  669.  15-8    character code
  670.  
  671. Format of ABLOCKMFI parameter block:
  672. Offset    Size    Description    (Table 2464)
  673.  00h    WORD    0009h (length of following data)
  674.  02h    WORD    top-left coordinate of character block
  675.  04h    WORD    width of block
  676.  06h    DWORD    -> block of DWORDs describing characters (see #2465)
  677.  0Ah    BYTE    length of block in characters
  678. SeeAlso: #2462
  679.  
  680. Bitfields for one character in ABLOCKMFI character block:
  681. Bit(s)    Description    (Table 2465)
  682.  7-0    reserved
  683.  9-8    low two bits of font number
  684.  12    transparent background
  685.  13    overstrike
  686.  14    reverse video
  687.  15    underscore
  688.  19-16    foreground color attribute
  689.  23-20    background color attribute
  690.  31-24    character code
  691.  
  692. Format of ACURSOR parameter block:
  693. Offset    Size    Description    (Table 2466)
  694.  00h    WORD    0002h (length of following data)
  695.  02h    BYTE    column (0-based)
  696.  03h    BYTE    row (0-based)
  697. SeeAlso: #2469
  698.  
  699. Format of AERASE parameter block:
  700. Offset    Size    Description    (Table 2467)
  701.  00h    WORD    0005h (length of following data)
  702.  02h    BYTE    left-most column (0-based)
  703.  03h    BYTE    top-most row (0-based)
  704.  04h    BYTE    rectangle's width in character cells
  705.  05h    BYTE    rectangle's height in character cells
  706.  06h    BYTE    background color (bits 7-4)
  707. SeeAlso: #2468
  708.  
  709. Format of ASCROLL parameter block:
  710. Offset    Size    Description    (Table 2468)
  711.  00h    WORD    0006h (length of following data)
  712.  02h    BYTE    left-most column (0-based) of source
  713.  03h    BYTE    top-most row (0-based) of source
  714.  04h    BYTE    rectangle's width in character cells
  715.  05h    BYTE    rectangle's height in character cells
  716.  06h    BYTE    left-most column (0-based) of destination
  717.  07h    BYTE    top-most row (0-based) of destination
  718. SeeAlso: #2467
  719.  
  720. Format of ASCUR parameter block:
  721. Offset    Size    Description    (Table 2469)
  722.  00h    WORD    0003h (length of following data)
  723.  02h    BYTE    cursor start line (00h = top of cell, FFh = keep current shape)
  724.  03h    BYTE    cursor stop line
  725.  04h    BYTE    cursor attribute
  726.         00h normal
  727.         01h hidden
  728.         02h left-arrow (requires start = 2 and stop = bottom of cell)
  729.         03h right-arrow (requires start = 2 and stop = bottom of cell)
  730. Notes:    no cursor is shown if the start line is greater than the stop line
  731.     the alphanumeric cursor is hidden after each mode change
  732. SeeAlso: #2466,INT 10/AH=01h
  733.  
  734. Format of ASFONT parameter block:
  735. Offset    Size    Description    (Table 2470)
  736.  00h    WORD    0005h (length of following data)
  737.  02h    BYTE    font number (0-3)
  738.  03h    DWORD    -> character set definition block (see #2471)
  739.  
  740. Format of 8514/A character set definition block:
  741. Offset    Size    Description    (Table 2471)
  742.  00h    BYTE    reserved
  743.  01h    BYTE    type of character set
  744.         00h bitmapped, 01h&02h reserved, 03h short-stroke font
  745.  02h    BYTE    reserved
  746.  03h    DWORD    reserved
  747.  07h    BYTE    cell width in pixels
  748.  08h    BYTE    cell height in pixels
  749.  09h    BYTE    reserved
  750.  0Ah    WORD    cell size in bytes
  751.  0Ch    WORD    flags
  752.         bit 15: reserved (0)
  753.         bit 14: color bitmap
  754.         bit 13: proportional spacing
  755.  0Eh    DWORD    -> index table
  756.  12h    DWORD    -> character width table
  757.  16h    BYTE    initial code point
  758.  17h    BYTE    final code point
  759.  18h    DWORD    -> character definition table
  760.  1Ch    WORD    reserved
  761.  1Eh    DWORD    -> second character definition table
  762.  22h    WORD    reserved
  763.  24h    DWORD    -> third character definition table
  764.  
  765. Format of AXLATE parameter block:
  766. Offset    Size    Description    (Table 2472)
  767.  00h    WORD    0080h (length of following data)
  768.  02h 64 BYTEs    character foreground translation table
  769.  42h 64 BYTEs    character background translation table
  770.  
  771. Format of HBAR parameter block:
  772. Offset    Size    Description    (Table 2473)
  773.  00h    WORD    0000h (no data following)
  774. SeeAlso: #2485
  775.  
  776. Format of HBBC parameter block:
  777. Offset    Size    Description    (Table 2474)
  778.  00h    WORD    0010h (length of following data)
  779.  02h    WORD    data format
  780.         0000h across-the-plane copy (color expansion)
  781.         0008h through-the-plane copy
  782.  04h    WORD    data rectangle's width
  783.  06h    WORD    data rectangle's height
  784.  08h    BYTE    source bit plane number (across-the-plane copies only)
  785.  09h    BYTE    reserved
  786.  0Ah  2 WORDs    X,Y coordinates of source's upper-left corner in display memory
  787.  0Eh  2 WORDs    X,Y coordinates of destination's upper-left corner in
  788.           display memory
  789. Note:    copies data from one location in video memory to another
  790. SeeAlso: #2475
  791.  
  792. Format of HBBCHN parameter block:
  793. Offset    Size    Description    (Table 2475)
  794.  00h    WORD    0006h (length of following data)
  795.  02h    DWORD    -> data buffer in system memory
  796.  06h    WORD    number of bytes to transfer
  797. Note:    this function performs the actual data transfer for a bitBLT set up
  798.       with HBBR, HBBW, or HCBBW
  799. SeeAlso: #2474,#2476,#2477,#2478
  800.  
  801. Format of HBBR parameter block:
  802. Offset    Size    Description    (Table 2476)
  803.  00h    WORD    000Ch or 0014h (length of following data)
  804.  02h    WORD    data format
  805.         0000h across-the-plane copy (color expansion)
  806.         0008h through-the-plane copy
  807.  04h    WORD    data rectangle's width
  808.  06h    WORD    data rectangle's height
  809.  08h    BYTE    source bit plane number
  810.  09h    BYTE    reserved
  811.  0Ah  2 WORDs    X,Y coordinates of destination's upper-left corner in
  812.           display memory
  813. ---optional---
  814.  0Eh    WORD    sub-rectangle left margin in pixels
  815.  10h    WORD    sub-rectangle top margin in pixels
  816.  12h    WORD    sub-rectangle width
  817.  14h    WORD    sub-rectangle height
  818. SeeAlso: #2475,#2476,#2478
  819.  
  820. Format of HBBW parameter block:
  821. Offset    Size    Description    (Table 2477)
  822.  00h    WORD    000Ah or 0012h (length of following data)
  823.  02h    WORD    data format
  824.         0000h across-the-plane copy (color expansion)
  825.         0008h through-the-plane copy
  826.  04h    WORD    data rectangle's width
  827.  06h    WORD    data rectangle's height
  828.  08h  2 WORDs    X,Y coordinates of destination in display memory
  829. ---optional---
  830.  0Ch    WORD    sub-rectangle left margin in pixels
  831.  0Eh    WORD    sub-rectangle top margin in pixels
  832.  10h    WORD    sub-rectangle width
  833.  12h    WORD    sub-rectangle height
  834. SeeAlso: #2475,#2477,#2478
  835.  
  836. Format of HCBBW parameter block:
  837. Offset    Size    Description    (Table 2478)
  838.  00h    WORD    0006h or 000Eh (length of following data)
  839.  02h    WORD    data format
  840.         0000h across-the-plane copy (color expansion)
  841.         0008h through-the-plane copy
  842.  04h    WORD    data rectangle's width
  843.  06h    WORD    data rectangle's height
  844. ---optional---
  845.  08h    WORD    sub-rectangle left margin in pixels
  846.  0Ah    WORD    sub-rectangle top margin in pixels
  847.  0Ch    WORD    sub-rectangle width
  848.  0Eh    WORD    sub-rectangle height
  849. SeeAlso: #2475,#2476,#2477
  850.  
  851. Format of HCCHST parameter block:
  852. Offset    Size    Description    (Table 2479)
  853.  00h    WORD    length of following data
  854.  02h  N BYTEs    ASCII string to display (length given by 'length' field above)
  855. SeeAlso: #2480
  856.  
  857. Format of HCHST parameter block:
  858. Offset    Size    Description    (Table 2480)
  859.  00h    WORD    length of following data
  860.  02h  2 WORDs    X,Y of left-bottom corner of string on screen
  861.  06h  N BYTEs    ASCII string to display (length given by 'length' field above)
  862. SeeAlso: #2479
  863.  
  864. Format of HCLINE parameter block:
  865. Offset    Size    Description    (Table 2481)
  866.  00h    WORD    length of following data (multiple of 4)
  867.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  868. Notes:    the first line segment is drawn beginning at the current position
  869.     on completion, the current position is set to the last point drawn
  870. SeeAlso: #2491,#2502,#2484
  871.  
  872. Format of HCLOSE parameter block:
  873. Offset    Size    Description    (Table 2482)
  874.  00h    WORD    0001h (length of following data)
  875.  01h    BYTE    (ret) return code
  876. SeeAlso: #2493
  877.  
  878. Format of HCMRK parameter block:
  879. Offset    Size    Description    (Table 2483)
  880.  00h    WORD    length of following data
  881.  02h 2N WORDs    X,Y of N points
  882. Note:    draws N+1 marker symbols, the first one at the current position
  883. SeeAlso: #2492
  884.  
  885. Format of HCRLINE parameter block:
  886. Offset    Size    Description    (Table 2484)
  887.  00h    WORD    length of following data (multiple of 4)
  888.  02h 2N WORDs    X,Y coordinates relative to the position of the previous point
  889.           (current position for first point) for each of N points in
  890.           polyline
  891. Notes:    the first line segment is drawn beginning at the current position
  892.     on completion, the current position is set to the last point drawn
  893. SeeAlso: #2491,#2481,#2502
  894.  
  895. Format of HEAR parameter block:
  896. Offset    Size    Description    (Table 2485)
  897.  00h    WORD    0001h (length of following data)
  898.  02h    BYTE    area definition flags
  899.         bits 7-6: End Area type
  900.             00 complete, perform fill
  901.             01 suspend definition
  902.             10 complete, but don't fill
  903. SeeAlso: #2473
  904.  
  905. Format of HEGS parameter block:
  906. Offset    Size    Description    (Table 2486)
  907.  00h    WORD    0000h (no data following)
  908.  
  909. Format of HESC parameter block:
  910. Offset    Size    Description    (Table 2487)
  911.  00h    WORD    0000h (no data following)
  912.  
  913. Format of HINIT parameter block:
  914. Offset    Size    Description    (Table 2488)
  915.  00h    WORD    0002h (length of following data)
  916.  02h    WORD    segment of task buffer
  917. SeeAlso: #2527
  918.  
  919. Format of HINT parameter block:
  920. Offset    Size    Description    (Table 2489)
  921.  00h    WORD    0004h (length of following data)
  922.  02h    DWORD    interrupt/event identifier
  923.         bit 31: vertical blanking
  924.  
  925. Format of HLDPAL parameter block:
  926. Offset    Size    Description    (Table 2490)
  927.  00h    WORD    000Ah (length of following data)
  928.  02h    BYTE    palette ID (00h = user, 01h = default)
  929.  03h    BYTE    reserved
  930.  04h    WORD    number of first palette entry
  931.  06h    WORD    number of entries
  932.  08h    DWORD    -> palette entries
  933. SeeAlso: #2524
  934.  
  935. Format of HLINE parameter block:
  936. Offset    Size    Description    (Table 2491)
  937.  00h    WORD    length of following data (multiple of 4)
  938.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  939. Note:    on completion, the current position is set to the last point drawn
  940. SeeAlso: #2481,#2502,#2484
  941.  
  942. Format of HMRK parameter block:
  943. Offset    Size    Description    (Table 2492)
  944.  00h    WORD    length of following data (multiple of 4)
  945.  02h 2N WORDs    X,Y for N points
  946. SeeAlso: #2483
  947.  
  948. Format of HOPEN parameter block:
  949. Offset    Size    Description    (Table 2493)
  950.  00h    WORD    0003h (length of following data)
  951.  01h    BYTE    initialization flags
  952.         bit 6: don't load default palette
  953.         bit 7: clear bitplanes
  954.  02h    BYTE    mode type (see #2494)
  955.  03h    BYTE    (ret) return code
  956.         bit 7: no adapter (hardware mismatch)
  957. SeeAlso: #2482
  958.  
  959. (Table 2494)
  960. Values for 8514/A display mode:
  961.  0000h    12x20 characters, 1024x768
  962.  0001h    8x14 characters, 640x480
  963.  0002h    8x14 characters, 1024x768
  964.  0003h    7x15 characters, 1024x768
  965.  
  966. Format of HQCOORD parameter block:
  967. Offset    Size    Description    (Table 2495)
  968.  00h    WORD    0004h (length of following data)
  969.  02h    BYTE    (ret) coordinate format
  970.         bits 7-4: bytes per coordinate
  971.         bits 3-0: fraction bytes in coordinate
  972.  03h    BYTE    (ret) relative coordinate format
  973.         bits 7-4: bytes per coordinate
  974.         bits 3-0: fraction bytes in coordinate
  975.  04h    BYTE    (ret) number of dimensions (2-4)
  976.  05h    BYTE    (ret) test results
  977.         bit 7: coordinate format not supported
  978.         bit 6: relative coordinate format not supported
  979.         bit 5: specified dimension not supported
  980.  
  981. Format of HQCP parameter block:
  982. Offset    Size    Description    (Table 2496)
  983.  00h    WORD    0004h (length of following data)
  984.  02h    WORD    (ret) current X position
  985.  04h    WORD    (ret) current Y position
  986.  
  987. Format of HQDFPAL parameter block:
  988. Offset    Size    Description    (Table 2497)
  989.  00h    WORD    0040h (length of following data)
  990.  02h 16    DWORDs    (ret) color index values
  991. Note:    the default palette is set to match the default EGA/VGA 16-color
  992.       palettes
  993.  
  994. Format of HQDPS parameter block:
  995. Offset    Size    Description    (Table 2498)
  996.  00h    WORD    0006h (length of following data)
  997.  02h    WORD    (ret) size of data buffer in bytes
  998.  04h    WORD    (ret) stack size in bytes
  999.  06h    WORD    (ret) size of palette save buffer in bytes
  1000.  
  1001. Format of HQMODE parameter block:
  1002. Offset    Size    Description    (Table 2499)
  1003.  00h    WORD    0012h (length of following data)
  1004.  02h    BYTE    current video mode (see #2494)
  1005.  03h    WORD    driver version
  1006.         bit 6: 80286/8086 CPU
  1007.         bit 5: 8 bit planes instead of 4 planes
  1008.         bits 4-0: hardware release number
  1009.  05h    BYTE    adapter type
  1010.         03h 8514/A
  1011.         04h XGA
  1012.  06h    BYTE    reserved (display type)
  1013.  07h    BYTE    character cell width
  1014.  08h    BYTE    character cell height
  1015.  09h    BYTE    number of bit planes
  1016.  0Ah    WORD    screen width (pixels)
  1017.  0Ch    WORD    screen height (pixels)
  1018.  0Eh    WORD    horizontal resolution (pixels/inch)
  1019.  10h    WORD    vertical resolution (pixels/inch)
  1020.  12h    BYTE    flag: 00h = monochrome, FFh = color
  1021.  13h    BYTE    intensity levels
  1022. SeeAlso: #2500
  1023.  
  1024. Format of HQMODES parameter block:
  1025. Offset    Size    Description    (Table 2500)
  1026.  00h    WORD    0021h (length of following data)
  1027.  02h    BYTE    (ret) adapter type
  1028.  03h 32 BYTEs    (ret) available display modes (FFh byte marks end of data)
  1029. SeeAlso: #2499
  1030.  
  1031. Format of HRECT parameter block:
  1032. Offset    Size    Description    (Table 2501)
  1033.  00h    WORD    0008h (legth of following data)
  1034.  02h  2 WORDs    X,Y coordinates of top left corner or rectangle
  1035.  06h    WORD    rectangle's width
  1036.  08h    WORD    rectangle's height
  1037. Note:    the rectangle is filled using the current pattern, color, and mix
  1038.  
  1039. Format of HRLINE parameter block:
  1040. Offset    Size    Description    (Table 2502)
  1041.  00h    WORD    length of following data (multiple of 4)
  1042.  02h  2 WORDs    X,Y coordinates of starting point
  1043.  06h 2N WORDs    X,Y coordinates relative to the position of the previous point
  1044.           for each of N points in polyline
  1045. Note:    on completion, the current position is set to the last point drawn
  1046. SeeAlso: #2491,#2481,#2484
  1047.  
  1048. Format of HRLPC parameter block:
  1049. Offset    Size    Description    (Table 2503)
  1050.  00h    WORD    0000h (no data following)
  1051. Note:    used for continuity of lines crossing scissors boundaries
  1052. SeeAlso: #2516
  1053.  
  1054. Format of HRPAL parameter block:
  1055. Offset    Size    Description    (Table 2504)
  1056.  00h    WORD    0300h (length of following data)
  1057.  02h 768 BYTEs    buffer containing previously-saved palette table
  1058. SeeAlso: #2524
  1059.  
  1060. Format of HSBCOL parameter block:
  1061. Offset    Size    Description    (Table 2505)
  1062.  00h    WORD    0004h (length of following data)
  1063.  02h    DWORD    color index for new background color
  1064. SeeAlso: #2509
  1065.  
  1066. Format of HSBP parameter block:
  1067. Offset    Size    Description    (Table 2506)
  1068.  00h    WORD    000Ch (length of following data)
  1069.  02h    DWORD    bitmask for graphics updates
  1070.  06h    DWORD    bitmask for alphanumeric updates
  1071.  0Ah    DWORD    display bitmask
  1072.  
  1073. Format of HSCELL parameter block:
  1074. Offset    Size    Description    (Table 2507)
  1075.  00h    
  1076.  
  1077. Format of HSCMP parameter block:
  1078. Offset    Size    Description    (Table 2508)
  1079.  00h    WORD    0005h (length of following data)
  1080.  02h    DWORD    comparison color
  1081.  06h    BYTE    logical operation
  1082.         00h True
  1083.         01h pel > testcolor
  1084.         02h pel == testcolor
  1085.         03h pel < testcolor
  1086.         04h False
  1087.         05h pel >= testcolor
  1088.         06h pel <> testcolor
  1089.         07h pel <= testcolor
  1090.  
  1091. Format of HSCOL parameter block:
  1092. Offset    Size    Description    (Table 2509)
  1093.  00h    WORD    0004h (length of following data)
  1094.  02h    DWORD    color index for new foreground color
  1095. SeeAlso: #2505
  1096.  
  1097. Format of HSCOORD parameter block:
  1098. Offset    Size    Description    (Table 2510)
  1099.  00h    WORD    0003h (length of following data)
  1100.  02h    BYTE    coordinate format
  1101.         bits 7-4: bytes per coordinate
  1102.         bits 3-0: fraction bytes in coordinate
  1103.  03h    BYTE    relative coordinates format
  1104.         bits 7-4: bytes per coordinate
  1105.         bits 3-0: fraction bytes in coordinate
  1106.  04h    BYTE    number of dimensions (2-4)
  1107.  
  1108. Format of HSCP parameter block:
  1109. Offset    Size    Description    (Table 2511)
  1110.  00h    WORD    0004h (length of following data)
  1111.  02h  2 WORDs    X,Y or coordinate for new current position
  1112.  
  1113. Format of HSCS parameter block:
  1114. Offset    Size    Description    (Table 2512)
  1115.  00h    WORD    0004h (length of following data)
  1116.  02h    DWORD    -> character set definition
  1117.  
  1118. Format of HSGQ parameter block:
  1119. Offset    Size    Description    (Table 2513)
  1120.  00h    WORD    0002h (length of following data)
  1121.  02h    WORD    quality settings (see #2515)
  1122.  
  1123. Format of HSHS parameter block:
  1124. Offset    Size    Description    (Table 2514)
  1125.  00h    WORD    0008h (length of following data)
  1126.  02h    WORD    left edge of clipping rectangle (-2048 to +6143)
  1127.  04h    WORD    right edge
  1128.  06h    WORD    top edge
  1129.  08h    WORD    bottom edget
  1130.  
  1131. Bitfields for 8514/A quality settings:
  1132. Bit(s)    Description    (Table 2515)
  1133.  15    reserved
  1134.  14    high precision
  1135.  13    reserved
  1136.  12-11    pel code
  1137.     00 not drawn
  1138.     01 drawn
  1139.     02 conditional on overpainting/mixes
  1140.  10    don't close areas to be filed
  1141.  9-0    reserved
  1142.  
  1143. Format of HSLPC parameter block:
  1144. Offset    Size    Description    (Table 2516)
  1145.  00h    WORD    0000h (no data following)
  1146. Note:    used for continuity of lines crossing scissors boundaries
  1147. SeeAlso: #2503
  1148.  
  1149. Format of HSLT parameter block:
  1150. Offset    Size    Description    (Table 2517)
  1151.  00h    WORD    0006h (length of following data)
  1152.  02h    BYTE    line type (see #2518)
  1153.  03h    BYTE    reserved
  1154.  04h    DWORD    -> user line-type definition (if user type)
  1155. SeeAlso: #2519
  1156.  
  1157. (Table 2518)
  1158. Values for 8514/A line type:
  1159.  00h    user line type
  1160.  01h    dotted
  1161.  02h    short dashes
  1162.  03h    dash-dot
  1163.  04h    double dotted
  1164.  05h    dashed
  1165.  06h    dash double dot
  1166.  07h    solid
  1167.  08h    invisible
  1168. SeeAlso: #2517
  1169.  
  1170. Format of HSLW parameter block:
  1171. Offset    Size    Description    (Table 2519)
  1172.  00h    WORD    0001h (length of following data)
  1173.  02h    BYTE    width of line in pixels
  1174. SeeAlso: #2517
  1175.  
  1176. Format of HSMODE parameter block:
  1177. Offset    Size    Description    (Table 2520)
  1178.  00h    WORD    0001h (length of following data)
  1179.  02h    BYTE    new display mode number (see #2494)
  1180.  
  1181. Format of HSMRK paramter block:
  1182. Offset    Size    Description    (Table 2521)
  1183.  00h    WORD    000Eh (length of following data)
  1184.  02h    BYTE    cell width
  1185.  03h    BYTE    cell height
  1186.  04h    BYTE    flags
  1187.  05h    BYTE    reserved
  1188.  06h    WORD    length of marker symbol
  1189.  08h    DWORD    -> image definition data
  1190.  0Ch    DWORD    -> color definition data
  1191. SeeAlso: #2525
  1192.  
  1193. Format of HSMX parameter block:
  1194. Offset    Size    Description    (Table 2522)
  1195.  00h    WORD    0002h (length of following data)
  1196.  02h    BYTE    foreground mix (see #2523)
  1197.  03h    BYTE    background mix (see #2523)
  1198.  
  1199. (Table 2523)
  1200. Values for 8514/A mix:
  1201.  00h    retain previous mix
  1202.  01h    source OR destination
  1203.  02h    source
  1204.  04h    source XOR destination
  1205.  05h    leave as-is
  1206.  06h    max(source,destination)
  1207.  07h    min(source,destination)
  1208.  08h    source+destination (clipped)
  1209.  09h    destination-source (clipped to zero)
  1210.  0Ah    source-destination (clipped to zero)
  1211.  0Bh    average source and destination
  1212.  10h    zero destination
  1213.  11h    source AND destination
  1214.  12h    source AND NOT destination
  1215.  13h    source
  1216.  14h    NOT source AND destination
  1217.  15h    leave as-is
  1218.  16h    source XOR destination
  1219.  17h    source OR destination
  1220.  18h    NOT source AND NOT destination
  1221.  19h    NOT (source XOR destination)
  1222.  1Ah    NOT destination
  1223.  1Bh    source OR NOT destination
  1224.  1Ch    NOT source
  1225.  1Dh    NOT source OR destination
  1226.  1Eh    NOT source OR NOT destination
  1227.  1Fh    set all bits of destination
  1228.  
  1229. Format of HSPAL parameter block:
  1230. Offset    Size    Description    (Table 2524)
  1231.  00h    WORD    0300h (length of following data)
  1232.  02h 768 BYTEs    buffer for palette table
  1233. SeeAlso: #2490,#2504
  1234.  
  1235. Format of HSPATT parameter block:
  1236. Offset    Size    Description    (Table 2525)
  1237.  00h    WORD    000Eh (length of following data)
  1238.  02h    BYTE    cell width
  1239.  03h    BYTE    cell height
  1240.  04h    BYTE    flags
  1241.  05h    BYTE    reserved
  1242.  06h    WORD    length of marker symbol
  1243.  08h    DWORD    -> image definition data
  1244.  0Ch    DWORD    -> color definition data
  1245. SeeAlso: #2521,#2526
  1246.  
  1247. Format of HSPATTO parameter block:
  1248. Offset    Size    Description    (Table 2526)
  1249.  00h    WORD    0004h (length of following data)
  1250.  02h  2 WORDs    X,Y of pattern reference point (origin)
  1251. SeeAlso: #2525
  1252.  
  1253. Format of HSYNC parameter block:
  1254. Offset    Size    Description    (Table 2527)
  1255.  00h    WORD    0002h (length of following data)
  1256.  02h    WORD    segment of task state buffer
  1257. SeeAlso: #2488
  1258.  
  1259. Format of HXLATE parameter block:
  1260. Offset    Size    Description    (Table 2528)
  1261.  00h    WORD    0020h (length of following data)
  1262.  02h 32 BYTEs    color index table
  1263. --------V-7F0105-----------------------------
  1264. INT 7F - IBM XGA Adapter Interface (XGAAIDOS.SYS)
  1265.     AX = 0105h
  1266. Return: CF set on error
  1267.     CF clear if successful
  1268.         CX:DX -> array of FAR pointers to entry points (see #2461)
  1269. Note:    this API is a superset of the 8514/A Adapter Interface
  1270.       (see AX=0105h"HDILOAD")
  1271. ----------7F0106-----------------------------
  1272. INT 7F - HDILOAD Mach32 Adapter Interface - UNINSTALL
  1273.     AX = 0106h
  1274. Return: AX = 0105h if successfully unloaded
  1275. SeeAlso: AX=0105h
  1276. --------N-7F02-------------------------------
  1277. INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
  1278.     AH = 02h
  1279.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  1280. Return: AL = status (see #2455)
  1281.     AH = semaphore owner if status=02h
  1282. SeeAlso: AH=00h,AH=01h,AH=42h
  1283. --------T-7F02-------------------------------
  1284. INT 7F - MultiLink Advanced v1.0+ - RELEASE CPU
  1285.     AH = 02h
  1286. Return: ???
  1287. Desc:    yields CPU to other tasks
  1288. SeeAlso: AH=00h"MultiLink",AH=09h"MultiLink",INT 15/AX=1000h
  1289. --------N-7F02-------------------------------
  1290. INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME
  1291.     AH = 02h
  1292.     AL = stream number (01h-40h)
  1293.     CX = length of frame
  1294.     ES:SI -> frame to be sent
  1295. SeeAlso: AH=00h"G8BPQ",AH=03h"G8BPQ",AH=07h"G8BPQ",AH=0Ah"G8BPQ"
  1296. --------f-7F0200-----------------------------
  1297. INT 7F - Btrieve Multi-User - GIVE UP TIME???
  1298.     AX = 0200h
  1299. SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"
  1300. --------N-7F03-------------------------------
  1301. INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
  1302.     AH = 03h
  1303. Return: AL = user number
  1304.     AH = machine number (MW386)
  1305. Note:    this function call is the recommended method for a CPU-bound process to
  1306.       prevent its priority from being lowered
  1307. SeeAlso: AH=04h,AH=05h,AH=A1h
  1308. --------N-7F03-------------------------------
  1309. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME
  1310.     AH = 03h
  1311.     AL = stream number (01h-40h)
  1312.     ES:DI -> buffer for frame (must be large enough for a full frame; 350
  1313.           bytes is usually sufficient)
  1314. Return:    BX = number of pending frames (0000h if returned frame was last avail)
  1315.     CX = length of received frame
  1316. SeeAlso: AH=02h"G8BPQ",AH=07h"G8BPQ",AH=0Bh"G8BPQ"
  1317. --------N-7F04-------------------------------
  1318. INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
  1319.     AH = 04h
  1320. Return: AL = total number of users on currrent machine (MW386)
  1321.     AL = number of slaves on system (NTNX)
  1322. SeeAlso: AH=03h
  1323. --------N-7F04-------------------------------
  1324. INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS
  1325.     AH = 04h
  1326.     AL = stream number (01h-40h)
  1327. Return: CX = state (0000h disconnected, 0001h connected)
  1328.     DX = delta state (0000h no change, 0001h changed since last check)
  1329. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=05h"G8BPQ"
  1330. --------N-7F05-------------------------------
  1331. INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
  1332.     AH = 05h
  1333.     AL = function
  1334.         00h lock system (disable slave services)
  1335.         01h unlock system
  1336.         02h enable spooler
  1337.         03h disable spooler
  1338.         04h enable slave timer update
  1339.         05h disable slave timer update
  1340.         06h enable form feeds
  1341.         07h disable form feeds
  1342. SeeAlso: INT 17/AH=A4h
  1343. --------N-7F05-------------------------------
  1344. INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
  1345.     AH = 05h
  1346.     DX:DI -> buffer for user information record (see #2529)
  1347. Notes:    MW386 provides this function for backward compatibility only, and sets
  1348.       many of the fields to zero because they are meaningless under MW386
  1349.     this function has no effect when called by the host (user 0)
  1350. SeeAlso: AH=03h
  1351.  
  1352. Format of Alloy user information record:
  1353. Offset    Size    Description    (Table 2529)
  1354.  00h    WORD    segment of video RAM
  1355.  02h    WORD    segment of secondary copy of video RAM
  1356.  04h    WORD    offset of screen update flag (see INT 10/AH=8Bh)
  1357.         flag nonzero if update needed
  1358.  06h    WORD    video NMI enable port
  1359.         (not used by MW386, set to 0000h)
  1360.  08h    WORD    video NMI disable port
  1361.         (not used by MW386, set to 0000h)
  1362.  0Ah    BYTE    processor type
  1363.         00h 8088
  1364.         01h V20
  1365.         02h 8086
  1366.         03h V30
  1367.         06h 80386
  1368.  0Bh    WORD    multitasking flag (00h = single tasking, 01h = multitasking)
  1369.         (not used by MW386, set to 0000h)
  1370.  0Dh    WORD    offset of terminal driver
  1371.         (not used by MW386, set to 0000h)
  1372.  0Fh    BYTE    port for console I/O
  1373.         (not used by MW386, set to 0000h)
  1374.  10h    WORD    offset of processor communication busy flag
  1375.         bit 7 set when slave communicating with host
  1376.  12h    WORD    pointer to FAR NX system call
  1377.         (not used by MW386, set to 0000h)
  1378.  14h    WORD    offset of 16-byte user configuration record (see AH=38h)
  1379.  16h    WORD    offset of command/status word
  1380.  18h    WORD    offset of screen valid flag (see INT 10/AH=93h)
  1381.         nonzero if screen must be repainted
  1382.  1Ah    WORD    offset of screen repaint flag
  1383.  1Ch    WORD    pointer to NEAR NX system call
  1384.         (not used by MW386, set to 0000h)
  1385.  1Eh    WORD    offset for intercept flags
  1386.         (not used by MW386, set to 0000h)
  1387.         intercept flag = FFh if MS-DOS intercepts should be disabled
  1388.  20h    WORD    offset of terminal lock flag (see INT 10/AH=92h)
  1389.         lock flag = FFh if backgrnd screen updates should be suspended
  1390.  22h 26 BYTEs    reserved
  1391. --------N-7F05-------------------------------
  1392. INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE
  1393.     AH = 05h
  1394.     AL = stream number (01h-40h)
  1395. Note:    this function must be called in order to receive a report of another
  1396.       status change
  1397. SeeAlso: AH=00h"G8BPQ",AH=04h"G8BPQ"
  1398. --------N-7F06-------------------------------
  1399. INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
  1400.     AH = 06h
  1401.     AL = drive number (1=A:, 2=B:, etc)
  1402.     ES:DI -> drive info record (see #2530)
  1403. Return: AX = status
  1404.         0000h successful
  1405.         ES:DI buffer filled
  1406.         0001h not shared drive
  1407.  
  1408. Format of Alloy drive info record:
  1409. Offset    Size    Description    (Table 2530)
  1410.  00h    WORD    segment of drive IO-REQUEST structure (MS-DOS DPB)
  1411.  02h    WORD    segment of allocation map (owner table)
  1412.         one byte per FAT entry, containing user ID owning that entry
  1413.  04h    WORD    segment of master FAT for drive (copy of FAT on disk)
  1414.  06h    WORD    pointer to configuration file
  1415.  08h    WORD    total number of clusters
  1416.  0Ah    WORD    bytes per sector
  1417.  0Ch    WORD    sectors per cluster
  1418.  0Eh    BYTE    FAT type (0Ch = 12-bit, 10h = 16-bit)
  1419. --------N-7F06-------------------------------
  1420. INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
  1421.     AH = 06h
  1422.     DL = drive number (1=A:,2=B:,etc)
  1423.     CX = number of clusters to allocate
  1424. Return: AH = status
  1425.         00h successful
  1426.         CX = number of clusters still free
  1427.         10h invalid shared drive request
  1428.         CL = first and second shared drives
  1429.         11h invalid cluster count (must be 01h-FFh)
  1430. --------N-7F06-------------------------------
  1431. INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL
  1432.     AH = 06h
  1433.     AL = stream number (01h-40h)
  1434.     CX = subfunction
  1435.         0000h connect to node
  1436.         DL bit 0: use BBS callsign instead of Node Call
  1437.         0001h connect to node
  1438.         use BBS Call if APPLMASK=1
  1439.         0002h disconnect
  1440.         0003h return user to node
  1441. SeeAlso: AH=01h"G8BPQ",AH=04h"G8BPQ"
  1442. --------N-7F07-------------------------------
  1443. INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
  1444.     AH = 07h
  1445. Return: ES:DI -> shared drive list (see #2531)
  1446. Note:    MW386 considers all fixed disks to be shared drives; only C and D will
  1447.       be returned as shared
  1448.  
  1449. Format of Alloy shared drive list:
  1450. Offset    Size    Description    (Table 2531)
  1451.  00h    BYTE    string length
  1452.  01h    BYTE    number of shared drives
  1453.  02h  N BYTEs    one byte per shared drive
  1454. --------N-7F07-------------------------------
  1455. INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM
  1456.     AH = 07h
  1457.     AL = stream number (01h-40h)
  1458. Return: BX = number of pending receive frames
  1459.     CX = number of unacknowledged sent frames
  1460.     DX = number of buffers available
  1461. SeeAlso: AH=02h"G8BPQ",AH=03h"G8BPQ"
  1462. --------N-7F08-------------------------------
  1463. INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
  1464.     AH = 08h
  1465.     CL = function
  1466.         00h get original interrupt vector
  1467.         01h get Network Executive interrrupt
  1468.     AL = interrupt number
  1469.     DX:SI -> DWORD to hold interrupt vector
  1470. Return: AL = status
  1471.         00h successful
  1472.         01h interrupt vector not used by network executive
  1473.         02h invalid subfunction
  1474. Note:    the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h,
  1475.       1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh
  1476. SeeAlso: AH=09h/CL=03h,INT 21/AH=35h
  1477. --------N-7F08--CL02-------------------------
  1478. INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
  1479.     AH = 08h
  1480.     CL = 02h
  1481.     DX = timeout in seconds
  1482. Return: AL = status
  1483.         00h successful
  1484.         02h invalid subfunction
  1485. --------N-7F08-------------------------------
  1486. INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION
  1487.     AH = 08h
  1488.     AL = stream number (01h-40h)
  1489. Return: ES:DI -> 10-byte buffer containing blank-padded callsign
  1490.     ---v4.05+ ---
  1491.     AL = radio port to which channel is connected (level 2)
  1492.     AH = session type (see #2532)
  1493.     BX = L2 paclen for session
  1494.     CX = maximum frame size
  1495.     DX = L4 window size or 0000h if not L4 circuit
  1496. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  1497.       John Wiseman which allows a PC to act as a node in an AX.25 network
  1498. SeeAlso: AH=01h"G8BPQ",AH=02h"G8BPQ",AH=03h"G8BPQ",AH=0Ah"G8BPQ"
  1499.  
  1500. Bitfields for G8BPQ session type:
  1501. Bit(s)    Description    (Table 2532)
  1502.  0    L2LINK
  1503.  1    SESSION
  1504.  2    UPLINK
  1505.  3    DOWNLIND
  1506.  5    BPQHOST
  1507. --------T-7F09-------------------------------
  1508. INT 7F - MultiLink Advanced v1.0+ - SET TASK PRIORITY
  1509.     AH = 09h
  1510.     AL = priority (0-7)
  1511. Note:    the installation check consists of ensuring that the interrupt vector
  1512.       is not pointing at segment 0000h, then checking whether the byte
  1513.       at offset 0000h in the interrupt handler's segment is E9h
  1514. Index:    installation check;MultiLink Advanced
  1515. SeeAlso: AH=00h"MultiLink",AH=0Ah"MultiLink"
  1516. --------N-7F09-------------------------------
  1517. INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS
  1518.     AH = 09h
  1519.     AL = application
  1520.         00h node
  1521.         01h BBS
  1522.         02h HOST
  1523.         03h SYSOP
  1524.     BL = what to get (00h callsign, 01h application name)
  1525.     ES:SI -> buffer for callsign/name string
  1526. Return: CX = length of returned string
  1527. SeeAlso: AH=00h"G8BPQ",AH=01h"G8BPQ",AH=0Ch"G8BPQ"
  1528. --------N-7F09-------------------------------
  1529. INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
  1530.     AH = 09h
  1531.     CL = function
  1532.         00h enable checking of RTNX.MUD file
  1533.         01h disable RTNX.MUD checking
  1534. --------N-7F09--CL02-------------------------
  1535. INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
  1536.     AH = 09h
  1537.     CL = 02h
  1538. Note:    in dedicated mode, the host will only poll for I/O requests from the
  1539.       slave processors, and not provide workstation services
  1540. --------N-7F09--CL03-------------------------
  1541. INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
  1542.     AH = 09h
  1543.     CL = 03h
  1544.     AL = default interrupt number (67h,7Fh,etc)
  1545. Return: CL = actual interrupt which handles specified interrupt's calls
  1546. SeeAlso: AH=08h
  1547. --------N-7F0A--CL00-------------------------
  1548. INT 7F - Alloy NTNX - GET SYSTEM FLAGS
  1549.     AH = 0Ah
  1550.     CL = 00h
  1551.     ES:DI -> buffer for system flags (see #2533)
  1552. Return: ES:DI buffer filled
  1553. Notes:    on a slave, only the NX_Busy flag is returned
  1554.     all three flags are at fixed positions, so this function only needs to
  1555.       be called once
  1556.     an interrupt handler should only perform DOS or device accesses when
  1557.       all three flags are 00h
  1558.  
  1559. Format of Alloy system flags:
  1560. Offset    Size    Description    (Table 2533)
  1561.  00h    DWORD    pointer to NX_Busy flag (nonzero when communicating with users)
  1562.  04h    DWORD    pointer to device driver busy flag
  1563.  08h    DWORD    pointer to InTimer flag
  1564. --------N-7F0A-------------------------------
  1565. INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME
  1566.     AH = 0Ah
  1567.     AL = radio port
  1568.     ES:SI -> buffer containing data to be sent
  1569.     CX = number of bytes to send
  1570. SeeAlso: AH=02h"G8BPQ",AH=08h"G8BPQ",AH=0Bh"G8BPQ"
  1571. --------T-7F0A-------------------------------
  1572. INT 7F - MultiLink Advanced v1.0+ - SET KEYBOARD TEST STATUS
  1573.     AH = 0Ah
  1574.     AL = task-switch status
  1575.         00h normal (disable task when it repeatedly polls keyboard)
  1576.         01h disable task until keyboard input available
  1577.         FFh never disable task
  1578. Return: ???
  1579. SeeAlso: AH=09h"MultiLink"
  1580. --------N-7F0B--CL02-------------------------
  1581. INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
  1582.     AH = 0Bh
  1583.     CL = 02h
  1584.     AL = slave ID number
  1585.     CH = DOS to activate
  1586.         00h graphics DOS
  1587.         01h character DOS
  1588. Return: AL = status
  1589.         00h successful
  1590.         01h nothing done, proper DOS type already loaded
  1591. --------N-7F0B-------------------------------
  1592. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME
  1593.     AH = 0Bh
  1594.     ES:DI -> buffer for received data (see #2534)
  1595. Return: CX = number of bytes received
  1596. Note:    the specified buffer must be large enough to receive a full frame
  1597. SeeAlso: AH=03h"G8BPQ",AH=08h"G8BPQ",AH=0Ah"G8BPQ"
  1598.  
  1599. Format of G8BPQ received data:
  1600. Offset    Size    Description    (Table 2534)
  1601.  00h    WORD    internal control information
  1602.  02h    BYTE    port number (bit 7 set if transmitted frame)
  1603.  03h    WORD    frame length including this header
  1604.  05h    var    user data
  1605. --------N-7F0C-------------------------------
  1606. INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION
  1607.     AH = 0Ch
  1608.     DX = function
  1609.         0001h update beacon text
  1610.         CX = length of data
  1611.         ES:SI -> data to be sent in beacons
  1612.         0002h (v4.07+) initiate NODES broadcast
  1613. SeeAlso: AH=09h"G8BPQ"
  1614. --------N-7F0D00-----------------------------
  1615. INT 7F - G8BPQ v4.07+ - HOST MODE - GET AVAILABLE STREAM
  1616.     AX = 0D00h
  1617. Return: AL = first available stream number, or FFh if none free
  1618. SeeAlso: AH=00h"G8BPQ",AH=0Dh
  1619. --------N-7F0D-------------------------------
  1620. INT 7F - G8BPQ v4.07+ - HOST MODE - ALLOCATE/DEALLOCATE STREAM
  1621.     AH = 0Dh
  1622.     AL = stream number (01h-FFh)
  1623.     CL = function
  1624.         01h allocate stream
  1625.         Return: CX = status (0000h successful, else already in use)
  1626.         02h deallocate stream
  1627. SeeAlso: AX=0D00h
  1628. --------N-7F0F-------------------------------
  1629. INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER
  1630.     AH = 0Fh
  1631. Return: AX = time marker (clock ticks modulo 64K)
  1632. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  1633.       John Wiseman which allows a PC to act as a node in an AX.25 network
  1634. SeeAlso: AH=01h"G8BPQ",AX=0D00h,INT 1A/AH=00h
  1635. --------N-7F10--CL00-------------------------
  1636. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
  1637.     AH = 10h
  1638.     CL = 00h
  1639.     AL = channel number
  1640.     DX:DI -> channel buffer
  1641. Return: AL = status (00h-03h,0Dh) (see #2535)
  1642. Note:    may not be invoked from within a hardware interrupt handler
  1643. SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h
  1644.  
  1645. (Table 2535)
  1646. Values for Alloy function status:
  1647.  00h    successful
  1648.  01h    busy
  1649.  02h    channel range error (not 00h-3Fh)
  1650.  03h    invalid subfunction
  1651.  0Ah    channel not open
  1652.  0Ch    channel already locked
  1653.  0Dh    unable to open
  1654. --------N-7F10--CL01-------------------------
  1655. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
  1656.     AH = 10h
  1657.     CL = 01h
  1658.     AL = channel number
  1659. Return: AL = status (00h-03h,0Ah) (see #2535)
  1660. Note:    may not be invoked from within a hardware interrupt handler
  1661. SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h
  1662. --------N-7F10--CL02-------------------------
  1663. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
  1664.     AH = 10h
  1665.     CL = 02h
  1666.     AL = channel number
  1667. Return: AL = status (00h-03h,0Ah,0Ch) (see #2535)
  1668. Note:    may not be invoked from within a hardware interrupt handler
  1669. SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h
  1670. --------N-7F10--CL03-------------------------
  1671. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
  1672.     AH = 10h
  1673.     CL = 03h
  1674.     AL = channel number
  1675. Return: AL = status (00h-03h,0Ah) (see #2535)
  1676. Notes:    should only be used on channels locked with AH=10h/CL=02h, not on those
  1677.       locked by receipt of a datagram
  1678.     may not be invoked from within a hardware interrupt handler
  1679. SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h
  1680. --------N-7F10--CL04-------------------------
  1681. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
  1682.     AH = 10h
  1683.     CL = 04h
  1684.     AL = channel number
  1685. Return: AL = status (00h-03h) (see #2535)
  1686. Notes:    unlocks buffer after received datagram has been processed
  1687.     may not be invoked from within a hardware interrupt handler
  1688. SeeAlso: AH=10h/CL=00h
  1689. --------N-7F10--CL05-------------------------
  1690. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
  1691.     AH = 10h
  1692.     CL = 05h
  1693. Return: AL = status (00h-03h) (see #2535)
  1694. Notes:    clears all pending datagrams and clears buffer pointers before closing
  1695.       the channels
  1696.     may not be invoked from within a hardware interrupt handler
  1697. SeeAlso: AH=10h/CL=01h
  1698. --------N-7F10--CL06-------------------------
  1699. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
  1700.     AH = 10h
  1701.     CL = 06h
  1702. Return: AL = status (00h-03h) (see #2535)
  1703. Note:    may not be invoked from within a hardware interrupt handler
  1704. SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h
  1705. --------N-7F10--CL07-------------------------
  1706. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
  1707.     AH = 10h
  1708.     CL = 07h
  1709. Return: AL = status (00h-03h) (see #2535)
  1710. Notes:    unlocks all locked channels which have no pending datagrams
  1711.     may not be invoked from within a hardware interrupt handler
  1712. SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h
  1713. --------N-7F10--CL08-------------------------
  1714. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
  1715.     AH = 10h
  1716.     CL = 08h
  1717.     DX = maximum channel number to lock
  1718. Return: AL = status (00h-03h) (see #2535)
  1719. Notes:    locks channels numbered 00h through the value in DX
  1720.     may not be invoked from within a hardware interrupt handler
  1721. SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h
  1722. --------N-7F10--CL09-------------------------
  1723. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
  1724.     AH = 10h
  1725.     CL = 09h
  1726.     DX = maximum channel number to unlock
  1727. Return: AL = status (00h-03h) (see #2535)
  1728. Notes:    unlocks channels numbered 00h through the value in DX
  1729.     may not be invoked from within a hardware interrupt handler
  1730. SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h
  1731. --------N-7F11-------------------------------
  1732. INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
  1733.     AH = 11h
  1734.     DX:SI -> request block (see #2537)
  1735. Return: AL = status (see #2536)
  1736. Note:    if wildcard channel FFh used, actual channel number will be filled in
  1737. SeeAlso: AH=12h
  1738.  
  1739. (Table 2536)
  1740. Values for Alloy function status:
  1741.  00h    successful
  1742.  01h    busy
  1743.  02h    channel range error (not 00h-3Fh)
  1744.  03h    invalid subfunction
  1745.  0Ah    packet too large (or <2 bytes if NTNX)
  1746.  0Bh    can't send packet to itself
  1747.  0Ch    invalid number of destinations
  1748.  0Dh    destination channel number out of range
  1749.  0Eh    destination user is busy
  1750.  0Fh    destination user has locked channel
  1751.  10h    channel not open
  1752.  11h    no datagram server on destination (NTNX)
  1753.  
  1754. Format of Alloy request block:
  1755. Offset    Size    Description    (Table 2537)
  1756.  00h    DWORD    pointer to packet to send
  1757.  04h    WORD    packet size in bytes (1-4096)
  1758.  06h    BYTE    number of destinations for packet (max 1Fh)
  1759.  07h 31 BYTEs    destination user IDs (FFh = broadcast to all except sender)
  1760.  26h 31 BYTEs    destination channels (FFh = first available channel)
  1761.  45h 31 BYTEs    return destination statuses
  1762. --------N-7F12-------------------------------
  1763. INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
  1764.     AH = 12h
  1765.     AL = channel number being acknowledged
  1766.     DI:DX = 32-bit status to return to sender
  1767. Return: AL = status (see #2538)
  1768. Note:    also unlocks the channel, allowing the next datagram to be received
  1769. SeeAlso: AH=11h,AH=15h/CL=04h
  1770.  
  1771. (Table 2538)
  1772. Values for Alloy function status:
  1773.  00h    successful
  1774.  01h    busy
  1775.  02h    channel range error (not 00h-3Fh)
  1776.  03h    invalid subfunction
  1777.  0Ah    channel not open
  1778.  0Bh    no message in channel
  1779.  0Ch    destination slave busy--retry (NTNX)
  1780.  0Dh    destination user not active
  1781.  0Eh    destination slave not active (NTNX)
  1782.  0Fh    destination disabled datagram service
  1783. --------V-7F1234-----------------------------
  1784. INT 7F - TIGA Communications Driver v2.05 - UNINSTALL
  1785.     AX = 1234h
  1786. SeeAlso: AX=4321h
  1787. --------N-7F13--CL00-------------------------
  1788. INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
  1789.     AH = 13h
  1790.     CL = 00h
  1791. Note:    clears all pending datagrams and removes all channels opened in NTNX
  1792.       compatibility mode
  1793. --------N-7F14--CL00-------------------------
  1794. INT 7F - Alloy NTNX, MW386 -  SET RECEIVE ISR
  1795.     AH = 14h
  1796.     CL = 00h
  1797.     DX:DI -> application FAR receive service routine (see #2539)
  1798. Return: AL = status (00h-03h) (see #2538)
  1799. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  1800.  
  1801. (Table 2539)
  1802. Values Alloy receive service routine is called with:
  1803.     DH = sender ID
  1804.     DL = channel with datagram
  1805.     interrupts disabled
  1806. Return: AL = response code
  1807.         00h leave buffer locked, set channel status, and repeat call later
  1808.         01h release channel buffer
  1809.         02h change buffer pointer to DX:DI
  1810.     AH,CX,DX,DI,SI may be destroyed
  1811. --------N-7F14--CL01-------------------------
  1812. INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
  1813.     AH = 14h
  1814.     CL = 01h
  1815.     DX:DI -> application FAR acknowledge service routine (see #2540)
  1816. Return: AL = status (00h-03h) (see #2538)
  1817. Note:    the service routine will be called as soon as an acknowledgment arrives
  1818. SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h
  1819.  
  1820. (Table 2540)
  1821. Values Alloy acknowledge service routine is called with:
  1822.     DS:SI -> acknowledge structure (see #2544)
  1823. Return: AL = response code
  1824.         00h application busy, network executive should call again later
  1825.         01h acknowledge accepted
  1826.     AH,DX,SI may be destroyed
  1827. --------N-7F14--CL02-------------------------
  1828. INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
  1829.     AH = 14h
  1830.     CL = 02h
  1831.     AL = channel number
  1832.     DX:DI -> receive buffer
  1833. Return: AL = status (00h-03h) (see #2538)
  1834. Note:    may be called from within a receive ISR or when a datagram is pending
  1835. SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h
  1836. --------N-7F14--CL03-------------------------
  1837. INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
  1838.     AH = 14h
  1839.     CL = 03h
  1840. Return: DX:DI -> current receive ISR
  1841. SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h
  1842. --------N-7F14--CL04-------------------------
  1843. INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
  1844.     AH = 14h
  1845.     CL = 04h
  1846. Return: DX:DI -> current acknowledge ISR
  1847. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  1848. --------N-7F14--CL05-------------------------
  1849. INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
  1850.     AH = 14h
  1851.     CL = 05h
  1852.     DX:DI -> buffer for busy structure (see #2541)
  1853. Return: DX:DI buffer filled
  1854.  
  1855. Format of Alloy busy structure:
  1856. Offset    Size    Description    (Table 2541)
  1857.  00h    DWORD    pointer to busy flag byte
  1858.  04h    WORD    fixed port address (FF00h)
  1859. --------N-7F15--CL00-------------------------
  1860. INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
  1861.     AH = 15h
  1862.     CL = 00h
  1863.     AL = channel number
  1864.     DX:DI -> status structure (see #2542)
  1865. Return: AL = status (00h-03h) (see #2538)
  1866. SeeAlso: AH=15h/CL=01h
  1867.  
  1868. Format of Alloy channel status structure:
  1869. Offset    Size    Description    (Table 2542)
  1870.  00h    BYTE    channel status
  1871.         bit 0: channel open
  1872.         bit 1: channel buffer contains received data
  1873.         bit 7: channel locked
  1874.  01h    BYTE    sender ID
  1875. --------N-7F15--CL01-------------------------
  1876. INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
  1877.     AH = 15h
  1878.     CL = 01h
  1879.     DX:DI -> full-channel structure (see #2543)
  1880. Return: AL = status
  1881.         00h successful
  1882.         01h busy
  1883.         0Ah no datagrams available
  1884. Note:    MW386 v1.0 returns the lowest channel with a datagram; newer versions
  1885.       and NTNX return the oldest datagram
  1886. SeeAlso: AH=15h/CL=00h
  1887.  
  1888. Format of Alloy full-channel structure:
  1889. Offset    Size    Description    (Table 2543)
  1890.  00h    BYTE    number of channel with oldest datagram
  1891.  01h    BYTE    sender ID
  1892. --------N-7F15--CL02-------------------------
  1893. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
  1894.     AH = 15h
  1895.     CL = 02h
  1896. Return: AH = number of channels available (40h for MW386)
  1897. Note:    the application may always assume at least 32 channels available
  1898. SeeAlso: AH=15h/CL=03h
  1899. --------N-7F15--CL03-------------------------
  1900. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
  1901.     AH = 15h
  1902.     CL = 03h
  1903.     DX:DI -> WORD for return value
  1904. Return: buffer WORD filled with maximum packet size (4096 for MW386)
  1905. SeeAlso: AH=15h/CL=02h
  1906. --------N-7F15--CL04-------------------------
  1907. INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
  1908.     AH = 15h
  1909.     CL = 04h
  1910.     DX:DI -> status structure (see #2544)
  1911. Return: AL = status
  1912.         00h successful
  1913.         DX:DI structure filled
  1914.         01h busy
  1915.         0Ah no acknowledgement has arrived
  1916. SeeAlso: AH=12h,AH=14h/CL=01h
  1917.  
  1918. Format of Alloy status structure:
  1919. Offset    Size    Description    (Table 2544)
  1920.  00h    BYTE    sender ID
  1921.  01h    BYTE    channel number
  1922.  02h  4 BYTEs    receiver status (see #2538)
  1923. --------N-7F16-------------------------------
  1924. INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
  1925.     AH = 16h
  1926.     DX:SI -> transfer structure (see #2545)
  1927. Return: AL = status
  1928.         00h successful
  1929.         0Ah source or destination out of range
  1930.         0Bh transfer kernal busy--try again
  1931. Notes:    this call transfers memory contents directly between users; both source
  1932.       and destination user IDs may differ from the caller's ID
  1933.     no segment wrap is allowed
  1934.  
  1935. Format of Alloy transfer structure:
  1936. Offset    Size    Description    (Table 2545)
  1937.  00h    WORD    bytes to transfer
  1938.  02h    BYTE    source ID
  1939.         FEh = caller
  1940.  03h    DWORD    source address
  1941.  07h    BYTE    destination ID
  1942.         FFh = all slaves except caller
  1943.         FEh = caller
  1944.  08h    DWORD    destination address
  1945. --------N-7F21-------------------------------
  1946. INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
  1947.     AH = 21h
  1948.     AL = sender's user ID
  1949.     DS:DX -> control packet (see #2546)
  1950. Note:    messages or commands are ignored if disabled by the destination user
  1951. SeeAlso: AH=22h
  1952.  
  1953. Format of Alloy control packet:
  1954. Offset    Size    Description    (Table 2546)
  1955.  00h    BYTE    packet type
  1956.         00h message
  1957.         01h NTNX command
  1958.         02h MW386 command
  1959.  01h    BYTE    destination user ID or 'A' for all users
  1960.  02h 62 BYTEs    ASCIZ message (packet type 00h)
  1961.         BIOS keycodes terminated by NUL byte (type 01h) or word (02h)
  1962. Note:    a maximum of 16 keycodes will be processed for NTNX and MW386 commands
  1963. --------N-7F22-------------------------------
  1964. INT 7F - Alloy NTNX - GET MESSAGE
  1965.     AH = 22h
  1966. Return: pending messages displayed on user's screen
  1967. SeeAlso: AH=21h
  1968. --------N-7F24-------------------------------
  1969. INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
  1970.     AH = 24h
  1971.     CL = function
  1972.         00h attach
  1973.         01h release
  1974.     CH = drive (0=A:,1=B:,etc)
  1975. Return: AX = status (see #2547)
  1976. Note:    only drives on the current machine may be attached
  1977.  
  1978. (Table 2547)
  1979. Values for Alloy function status:
  1980.  00h    successful
  1981.  01h    invalid request
  1982.  02h    already attached
  1983.  03h    not attached
  1984.  04h    lock table full
  1985. --------N-7F24-------------------------------
  1986. INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
  1987.     AH = 24h
  1988.     CL = function
  1989.         02h attach host
  1990.         03h release host
  1991. Return: AX = status (see #2547)
  1992. Note:    the host processor may be attached in order to perform I/O via the host
  1993. --------N-7F25--CL00-------------------------
  1994. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
  1995.     AH = 25h
  1996.     CL = 00h
  1997. Return: AH = version suffix letter
  1998.     CH = major version number
  1999.     CL = minor version number
  2000. SeeAlso: AH=25h/CL=01h
  2001. --------N-7F25--CL01-------------------------
  2002. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
  2003.     AH = 25h
  2004.     CL = 01h
  2005. Return: CL = executive type (see #2548)
  2006. SeeAlso: AH=25h/CL=00h
  2007.  
  2008. (Table 2548)
  2009. Values for Alloy network executive type:
  2010.  00h    RTNX
  2011.  01h    ATNX
  2012.  02h    NTNX
  2013.  03h    BTNX
  2014.  04h    MW386
  2015.  05h    ANSK
  2016. ----------7F2525-----------------------------
  2017. INT 7F - TIGA Communications Driver v2.05 - ???
  2018.     AX = 2525h
  2019.     BX = ???
  2020. Return: ???
  2021. SeeAlso: AX=4321h,AX=5555h
  2022. --------N-7F26--CL00-------------------------
  2023. INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
  2024.     AH = 26h
  2025.     CL = 00h
  2026. Return: AX = file mode bits (see #2549)
  2027. Note:    MW386 does not support file modes, and always returns AX=001Fh
  2028. SeeAlso: AH=26h,AH=26h/CL=06h
  2029.  
  2030. Bitfields for Alloy file mode bits:
  2031. Bit(s)    Description    (Table 2549)
  2032.  0    directory protection enabled
  2033.  1    extended open enabled
  2034.  2    flush on every disk write
  2035.  3    flush on every disk write in locked interval
  2036.  4    flush on reads from simultaneously opened file
  2037. --------N-7F26-------------------------------
  2038. INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
  2039.     AH = 26h
  2040.     CL = check type to set/reset
  2041.         01h directory protection
  2042.         02h extended open
  2043.         03h flush on every disk write
  2044.         04h flush on disk write if any lock set during write
  2045.         05h flush on all reads if file written
  2046.     AL = new state (00h off, 01h on)
  2047. SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h
  2048. --------N-7F26--CL06-------------------------
  2049. INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
  2050.     AH = 26h
  2051.     CL = 06h
  2052. Note:    cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h
  2053. SeeAlso: AH=26h/CL=00h
  2054. --------N-7F30-------------------------------
  2055. INT 7F - Alloy MW386 - GET PORT INFORMATION
  2056.     AH = 30h
  2057.     CX = MW386 port number
  2058. Return: AL = result
  2059.         FFh if port not found
  2060.         else driver unit number
  2061.         BL = port mode
  2062.         BH = port type
  2063.             02h remote
  2064.         DH = owner's machine ID
  2065.         DL = owner's user ID
  2066. SeeAlso: INT 17/AH=8Bh
  2067. --------N-7F31-------------------------------
  2068. INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
  2069.     AH = 31h
  2070.     ???
  2071. Return: ???
  2072. --------N-7F37-------------------------------
  2073. INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
  2074.     AH = 37h
  2075. Return: ES:AX -> semaphore table
  2076. --------N-7F37-------------------------------
  2077. INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
  2078.     AH = 37h
  2079.     DS:DX -> ASCIZ string to display
  2080. Note:    if the string is empty, a terminal update will be forced
  2081. --------N-7F38-------------------------------
  2082. INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
  2083.     AH = 38h
  2084.     AL = new terminal driver number
  2085.         FFh dummy driver
  2086.         FEh current driver
  2087.         FDh load new driver
  2088.         DS:SI -> new driver
  2089. SeeAlso: AH=39h
  2090. --------N-7F39-------------------------------
  2091. INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
  2092.     AH = 39h
  2093.     AL = new terminal driver number
  2094.         FFh dummy driver
  2095.         FEh current driver
  2096.         FDh load new driver
  2097.         DS:SI -> new driver
  2098.     DL = user number (FFh = caller)
  2099.     DH = machine number if DL <> FFh
  2100. Return: CF set if invalid user number
  2101.     CF clear if successful
  2102. Notes:    only available to supervisors
  2103.     the new driver number will not take effect until the user is rebooted
  2104. SeeAlso: AH=38h
  2105. --------N-7F3A-------------------------------
  2106. INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
  2107.     AH = 3Ah
  2108.     DL = user number (FFh = caller)
  2109.     DH = machine number
  2110. Return: CF clear if successful
  2111.         AH = terminal driver number
  2112.         AL = baud rate (00h = 38400, 01h = 19200, etc)
  2113.         CL = parity (00h none, 01h even, 02h odd)
  2114.         CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  2115.     CF set if invalid user number
  2116. SeeAlso: AH=3Bh
  2117. --------N-7F3B-------------------------------
  2118. INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
  2119.     AH = 3Bh
  2120.     AL = baud rate (00h = 38400, 01h = 19200, etc)
  2121.     CL = parity (00h none, 01h even, 02h odd)
  2122.     CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  2123.     DL = user number (FFh = caller)
  2124.     DH = machine number for user
  2125. Return: CF set if invalid user number
  2126. Notes:    only available to supervisors
  2127.     the new parameters will take effect immediately if the user's terminal
  2128.       has not been started, else AH=3Dh must be called to post the changes
  2129. SeeAlso: AH=3Ah,AH=3Dh
  2130. --------N-7F3C-------------------------------
  2131. INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
  2132.     AH = 3Ch
  2133.     AL = new state (00h disabled, 01h enabled)
  2134.     DL = user number (FFh = caller)
  2135.     DH = machine number for user
  2136. Return: CF set if invalid user number
  2137. Note:    only available to supervisors
  2138. SeeAlso: AH=3Dh
  2139. --------N-7F3D-------------------------------
  2140. INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
  2141.     AH = 3Dh
  2142. Note:    should be called whenever a program changes the terminal type or its
  2143.       parameters
  2144. SeeAlso: AH=3Bh
  2145. --------N-7F41-------------------------------
  2146. INT 7F - Alloy NTNX - LOCK FILE FOR USER
  2147.     AH = 41h
  2148.     AL = user ID
  2149.     DS:DX -> ASCIZ filename
  2150. Return: AL = status (see #2550)
  2151. Note:    requests exclusive read/write access to file
  2152. SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX"
  2153.  
  2154. (Table 2550)
  2155. Values for Alloy function status:
  2156.  00h    successful
  2157.  01h    invalid function
  2158.  02h    already locked
  2159.  03h    unable to lock
  2160.  04h    lock table full or semaphore space exhausted
  2161. --------N-7F41-------------------------------
  2162. INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
  2163.     AH = 41h
  2164.     AL = user ID
  2165.     DS:DX -> ASCIZ semaphore name
  2166. Return: AL = status (see #2550)
  2167. SeeAlso: AH=00h,AH=42h"MW386"
  2168. --------s-7F4150BHC1-------------------------
  2169. INT 7F U - Voyetra - AAPISG - API
  2170.     AX = 4150h ('AP')
  2171.     BH = C1h
  2172.     BL = function (00h-13h)
  2173.         00h initialize (fails except first time called)
  2174.     ???
  2175. Return: AX = status???
  2176.         0000h successful    
  2177.         0001h failed
  2178. Program: AAPISG is a driver by Voyetra for the Aztech Sound Galaxy sound board
  2179. BUG:    the function range check uses JL instead of JB, so it will cause a
  2180.       crash if BL >= 80h on entry
  2181. SeeAlso: AX=4331h,AX=564Dh,AX=5658h
  2182. --------N-7F42-------------------------------
  2183. INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
  2184.     AH = 42h
  2185.     AL = user ID
  2186.     DS:DX -> ASCIZ filename
  2187. Return: AL = status (see #2550)
  2188. SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"
  2189. --------N-7F42-------------------------------
  2190. INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
  2191.     AH = 42h
  2192.     AL = user ID
  2193.     DS:DX -> ASCIZ semaphore name
  2194. Return: AL = status
  2195.         00h successful
  2196.         01h invalid function
  2197.         03h unable to unlock semaphore
  2198. SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"
  2199. ----------7F4321-----------------------------
  2200. INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK
  2201.     AX = 4321h
  2202. Return: AX = 0000h if installed
  2203. Note:    INT 7F is the default, but may be overridden
  2204. SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h
  2205. --------s-7F4331BHC1-------------------------
  2206. INT 7F U - Voyetra - VAPISG - API
  2207.     AX = 4331h ('C1')
  2208.     BH = C1h
  2209.     BL = function (00h-7Ah)
  2210.     ???
  2211. Return: ???
  2212. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  2213.       sound board
  2214. SeeAlso: AX=4150h,AX=564Dh,AX=5658h
  2215. --------N-7F4E-------------------------------
  2216. INT 7F - Alloy MW386 v2+ - SET ERROR MODE
  2217.     AH = 4Eh
  2218.     AL = error mode flags
  2219.         bit 0: display critical disk errors
  2220.         bit 1: display sharing errors
  2221.     DX = 4E58h ("NX")
  2222. Return: AL = status
  2223.         00h successful
  2224. SeeAlso: AH=4Fh
  2225. --------N-7F4F-------------------------------
  2226. INT 7F - Alloy MW386 v2+ - SET FCB MODE
  2227.     AH = 4Fh
  2228.     AL = FCB mode
  2229.         02h read/write compatibility
  2230.         42h read/write shared
  2231.     DX = 4E58h ("NX")
  2232. Return: AL = status
  2233.         00h successful
  2234. --------V-7F5555-----------------------------
  2235. INT 7F - TIGA Communications Driver v2.05 - ???
  2236.     AX = 5555h
  2237.     BX = ???
  2238. Return: ???
  2239. SeeAlso: AX=4321h
  2240. --------s-7F564DBHC1-------------------------
  2241. INT 7F U - Voyetra Multimedia Player - VMP.EXE API
  2242.     AX = 564Dh ('VM')
  2243.     BH = C1h
  2244.     BL = function (00h-1Bh)
  2245.         00h ???
  2246.         Return: CF clear
  2247.             AX = 0000h
  2248.     ???
  2249. Return: AX = FFFFh if invalid function
  2250.     ???
  2251. SeeAlso: AX=4331h,AX=5658h
  2252. --------s-7F5658BHC1-------------------------
  2253. INT 7F U - Voyetra - VAPISG - API
  2254.     AX = 5658h ('VX')
  2255.     BH = C1h
  2256.     BL = function (00h-1Bh)
  2257.     ???
  2258. Return: ???
  2259. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  2260.       sound board
  2261. SeeAlso: AX=4331h,AX=564Dh
  2262. --------N-7F81-------------------------------
  2263. INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
  2264.     AH = 81h
  2265.     AL = user ID
  2266.     DS:DX -> ASCIZ device name
  2267. SeeAlso: AH=82h
  2268. --------N-7F82-------------------------------
  2269. INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
  2270.     AH = 82h
  2271.     AL = user ID
  2272.     DS:DX -> ASCIZ device name
  2273. SeeAlso: AH=81h
  2274. --------N-7FA0-------------------------------
  2275. INT 7F - Alloy MW386 - GET USER NAME
  2276.     AH = A0h
  2277.     DL = user number (FFh = caller)
  2278.     DH = machine number for user
  2279.     ES:DI -> 17-byte buffer for ASCIZ user name
  2280. Return: CF set if invalid user number
  2281. SeeAlso: AH=03h,AH=A1h
  2282. --------N-7FA1-------------------------------
  2283. INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
  2284.     AH = A1h
  2285. Return: AL = process number
  2286.     DL = user number
  2287.     DH = machine number
  2288. SeeAlso: AH=03h,AH=A0h,AH=A2h
  2289. --------N-7FA2-------------------------------
  2290. INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
  2291.     AH = A2h
  2292.     DL = user number (FFh = caller)
  2293.     DH = machine number for user
  2294. Return: CF clear if successful
  2295.         AL = privilege level
  2296.         00h supervisor
  2297.         01h high
  2298.         02h medium
  2299.         03h low
  2300.     CF set if invalid user number
  2301. SeeAlso: AH=A1h,AH=A3h
  2302. --------N-7FA3-------------------------------
  2303. INT 7F - Alloy MW386 - GET USER LOGIN STATE
  2304.     AH = A3h
  2305.     DL = user number
  2306.     DH = machine number for user
  2307. Return: CF clear if successful
  2308.         AL = login state
  2309.         00h never logged in
  2310.         01h currently logged out
  2311.         03h currently logged in
  2312.     CF set if invalid user number or user not active
  2313. SeeAlso: AH=A2h
  2314. --------N-7FA4-------------------------------
  2315. INT 7F - Alloy MW386 - VERIFY USER PASSWORD
  2316.     AH = A4h
  2317.     DS:DX -> ASCIZ password (null-padded to 16 bytes)
  2318. Return: AL = status
  2319.         00h     accepted
  2320.         else invalid password
  2321. --------N-7FA500-----------------------------
  2322. INT 7F - Alloy MW386 - GET USER STATUS
  2323.     AX = A500h
  2324.     DI = machine number and user number
  2325. Return: CF clear if successful
  2326.         BX = user flags
  2327.         bit 5: allow messages
  2328.         CL = scan code for task manager hotkey
  2329.         CH = scan code for spooler hotkey
  2330.         DL = scan code for task swapper hotkey
  2331.         DH = modifier key status
  2332.     CF set if invalid user number
  2333. SeeAlso: AX=A501h
  2334. Index:    hotkeys;Alloy MW386
  2335. --------N-7FA501-----------------------------
  2336. INT 7F - Alloy MW386 - SET USER STATUS
  2337.     AX = A501h
  2338.     BX = user flags (see AX=A500h)
  2339.     CL = scan code for task manager hotkey
  2340.     CH = scan code for spooler hotkey
  2341.     DL = scan code for task swapper hotkey
  2342.     DH = modifier key status
  2343.     DI = machine number and user number
  2344. Return: CF set if invalid user number
  2345. Note:    must have supervisor privilege to set another user's status
  2346. SeeAlso: AX=A500h
  2347. Index:    hotkeys;Alloy MW386
  2348. --------V-7FABCDBX0000-----------------------
  2349. INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
  2350.     AX = ABCDh
  2351.     BX = 0000h
  2352. Return: AX = total number of functions available
  2353.     ES:BX -> entry point array (see #2551)
  2354. SeeAlso: AX=0104h,AX=0105h
  2355.  
  2356. (Table 2551)
  2357. Values for 8516 Touch Screen function number:
  2358.  00h    check initialization and reset (see #2552)
  2359.  14h    set user-defined subroutine (see #2553)
  2360. Notes:    each driver function takes two stack parameters using Pascal calling
  2361.       conventions: address of parameter block and address of results buffer
  2362.     all pointers are FAR pointers
  2363.     on return, AX contains the status of the call:
  2364.         AX = 0000h successful
  2365.          0001h invalid input
  2366.          0002h interface error
  2367.          0003h unable to perform function
  2368.  
  2369. Format of 8516 Touch Screen Function 00h parameter block:
  2370. Offset    Size    Description    (Table 2552)
  2371.  00h    WORD    0000h (function number)
  2372. Note:    this function should be called before any other device driver functions
  2373.  
  2374. Format of 8516 Touch Screen Function 00h results buffer:
  2375. Offset    Size    Description    (Table 2553)
  2376.  00h    WORD    touch screen status
  2377.         0000h unavailable
  2378.         0001h uncalibrated
  2379.         FFFFh available
  2380.  02h    WORD    aux mouse status (0000h not present, FFFFh present)
  2381. Notes:    the following driver parameters will have been reset to zero:
  2382.       touchdown counter, liftoff counter, position at last touch, position
  2383.       at last lift, int call mask, select on count, select off count,
  2384.       pos select on count, pos select off count.
  2385.     the following driver parameters will have been reset as listed:
  2386.       mouse emulation mode: left on
  2387.       thresholds: 46 on screen, 96 push harder, 80 push release
  2388.       x, y hysteresis: 400
  2389.       data repeat rate: 40/sec
  2390.       select mechanism: push-harder - first-touch
  2391.       coordinate origin: upper left corner
  2392.       filter frequency: medium
  2393.       data block mask: all enabled
  2394.       click lock: on
  2395. --------N-7FB0-------------------------------
  2396. INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
  2397.     AH = B0h
  2398.     AL = user number
  2399.     DS = code segment
  2400. Note:    MW386 ignores AL and DS; it releases all semaphores locked using INT 67
  2401.       or INT 7F locking functions
  2402. SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h
  2403. --------N-7FB1--SF00-------------------------
  2404. INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
  2405.     AH = B1h subfn 00h
  2406.     AL = (bits 7-5) 000
  2407.          (bits 4-0) user ID
  2408. Note:    MW386 ignores AL; it releases all semaphores locked using INT 67 or
  2409.       INT 7F locking functions
  2410. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  2411. --------N-7FB2--SF01-------------------------
  2412. INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
  2413.     AH = B2h subfn 01h
  2414.     AL = (bits 7-5) 001
  2415.          (bits 4-0) user ID
  2416. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h
  2417. --------N-7FB3--SF02-------------------------
  2418. INT 7F - Alloy NTNX - RELEASE FILES FOR USER
  2419.     AH = B3h subfn 02h
  2420.     AL = (bits 7-5) 010
  2421.          (bits 4-0) user ID
  2422. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h
  2423. --------N-7FB4-------------------------------
  2424. INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
  2425.     AH = B4h
  2426.     AL = user ID
  2427. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h
  2428. --------N-7FC3-------------------------------
  2429. INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
  2430.     AH = C3h
  2431.     AL = byte to write
  2432. Return: CF clear if successful
  2433.     CF set on error
  2434. SeeAlso: AH=C6h
  2435. --------N-7FC5-------------------------------
  2436. INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
  2437.     AH = C5h
  2438.     AL = new console mode
  2439.         00h keyboard indirect
  2440.         01h keyboard direct
  2441.         02h data handshake enforced
  2442.         03h no data handshake
  2443. Return: CF clear if successful
  2444.         AL = prior console mode
  2445.     CF set on error (caller is not remote user)
  2446. Note:    modes 2 and 3 may be used for input through the console port; no video
  2447.       output should be performed in these modes
  2448. --------N-7FC6-------------------------------
  2449. INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
  2450.     AH = C6h
  2451.     AL = byte to write
  2452. Return: CF clear if successful
  2453.     CF set on error (caller is not remote user)
  2454. Note:    any terminal driver data translation will be bypassed
  2455. SeeAlso: AH=C3h,AH=C7h
  2456. --------N-7FC7-------------------------------
  2457. INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
  2458.     AH = C7h
  2459. Return: CF clear if successful
  2460.         AL = byte read
  2461.     CF set on error (no data available or caller is not remote user)
  2462. Note:    used to read data after placing console in mode 2 or 3 (see AH=C5h)
  2463. SeeAlso: AH=C5h,AH=C6h,AH=C8h
  2464. --------N-7FC8-------------------------------
  2465. INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
  2466.     AH = C8h
  2467.     AL = maximum bytes to read
  2468.     ES:DI -> buffer for console data
  2469. Return: CF clear if successful
  2470.         CX = number of bytes read
  2471.     CF set on error (caller is not remote user)
  2472. SeeAlso: AH=C7h
  2473. --------N-7FCF-------------------------------
  2474. INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
  2475.     AH = CFh
  2476.     DS:DX -> ASCIZ string containing user number to be reset
  2477. SeeAlso: AH=D6h
  2478. --------N-7FD6-------------------------------
  2479. INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
  2480.     AH = D6h
  2481.     DS:DX -> reset packet (see #2554)
  2482. Return: never if successful
  2483. Note:    all users will be shut down immediately if successful
  2484. SeeAlso: AH=CFh
  2485.  
  2486. Format of Alloy MW386 reset packet:
  2487. Offset    Size    Description    (Table 2554)
  2488.  00h    DWORD    reset code (60606060h)
  2489.  04h 16 BYTEs    ASCIZ supervisor password padded with nulls
  2490. --------N-7FD7-------------------------------
  2491. INT 7F - Alloy MW386 - POST EVENT
  2492.     AH = D7h
  2493.     AL = user number (if local event)
  2494.     DX = event number
  2495. --------N-7FD8-------------------------------
  2496. INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
  2497.     AH = D8h
  2498. Return: CF set on error
  2499. Note:    forces all disk buffers to be written out immediately
  2500. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h
  2501. --------N-7FDB-------------------------------
  2502. INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
  2503.     AH = DBh
  2504. Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)
  2505. --------N-7FE0-------------------------------
  2506. INT 7F - Alloy MW386 - CREATE DOS TASK
  2507.     AH = E0h
  2508.     AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  2509.     DS:DX -> ASCIZ task name (max 16 bytes)
  2510. Return: CF clear if successful
  2511.         AL = task create ID
  2512.     CF set on error
  2513. Note:    only foreground DOS tasks can use this function
  2514. SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h
  2515. --------N-7FE1-------------------------------
  2516. INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
  2517.     AH = E1h
  2518.     AL = create ID (from AH=E0h)
  2519. Return: AL = DOS process number
  2520.     CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  2521. Note:    this function should not be called immediately after creating a new
  2522.       DOS task, since the new task is being initialized by a concurrent
  2523.       process
  2524. SeeAlso: AH=E0h,AH=E2h
  2525. --------N-7FE2-------------------------------
  2526. INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
  2527.     AH = E2h
  2528.     AL = DOS process number (from AH=E1h)
  2529. Return: CF set on error (invalid process number or caller not foreground task)
  2530. Notes:    specified task becomes the foreground task and current task is placed
  2531.       in the background
  2532.     may only be called by a foreground task
  2533. SeeAlso: AH=E0h,AH=E1h
  2534. --------N-7FE3-------------------------------
  2535. INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
  2536.     AH = E3h
  2537.     DS:DX -> ASCIZ task name
  2538. ---v1.x---
  2539.     AL = user number
  2540. ---v2+---
  2541.     BH = user number
  2542.     BL = task number
  2543. Return: CF clear if successful
  2544.     CF set on error (invalid process number)
  2545. SeeAlso: AH=E0h,AH=E4h,AH=E5h
  2546. --------N-7FE4-------------------------------
  2547. INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
  2548.     AH = E4h
  2549.     ES:DI -> buffer for task name
  2550. ---v1.x---
  2551.     AL = user number
  2552. ---v2+---
  2553.     BH = user number
  2554.     BL = task number
  2555. Return: CF clear if successful
  2556.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  2557.         DX = task flags
  2558.         bit 7: MS-DOS process
  2559.         ES:DI buffer filled
  2560.     CF set on error (invalid process number)
  2561. SeeAlso: AH=E3h,AH=E5h
  2562. --------N-7FE5-------------------------------
  2563. INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
  2564.     AH = E5h
  2565.     DS:DX -> ASCIZ task name
  2566.     BH = user number
  2567. Return: CF clear if successful
  2568.         AL = DOS process number
  2569.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  2570.     CF set on error (no match for name)
  2571. SeeAlso: AH=E3h,AH=E4h
  2572. --------N-7FE6-------------------------------
  2573. INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
  2574.     AH = E6h
  2575. Return: AX = number of processes available to current user
  2576. SeeAlso: AH=E0h
  2577. --------N-7FE7-------------------------------
  2578. INT 7F - Alloy MW386 - REMOVE DOS TASK
  2579.     AH = E7h
  2580.     AL = DOS process number
  2581. Return:    CF clear if successful
  2582.     CF set on error (invalid process number or first process)
  2583. Note:    can only be called by a foreground task
  2584. SeeAlso: AH=E0h
  2585. --------N-7FE8-------------------------------
  2586. INT 7F - Alloy MW386 - DOS TASK DELAY
  2587.     AH = E8h
  2588.     CX = delay time in milliseconds
  2589. Note:    a delay of 0 may be used to surrender the current time slice
  2590. SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS"
  2591. SeeAlso: INT 2F/AX=1680h
  2592. --------N-7FF0-------------------------------
  2593. INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
  2594.     AH = F0h
  2595.     AL = group number
  2596.     DS:DX -> ASCIZ directory name
  2597. Return: CF clear if successful
  2598.         AX = status
  2599.         0002h directory not found
  2600.         0003h directory not found
  2601.         0005h directory in use, cannot be restricted
  2602.         02xxh restricted to group xxh
  2603.     CF set on error
  2604. Note:    the restriction on the directory may be removed by calling this
  2605.       function with group 0, then using AH=F1h to assign the directory to
  2606.       group 0
  2607. SeeAlso: AH=F1h,AH=F2h,AH=F3h
  2608. --------N-7FF1-------------------------------
  2609. INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
  2610.     AH = F1h
  2611.     AL = group number
  2612.     DS:DX -> ASCIZ directory name
  2613. Notes:    performs permanent assignment to a group; no immediate action is taken
  2614.       unless the directory has been restricted with AH=F0h
  2615.     may be used to restrict a nonexistent directory
  2616. SeeAlso: AH=F0h
  2617. --------N-7FF2-------------------------------
  2618. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
  2619.     AH = F2h
  2620.     CX = entry number
  2621.     ES:DI -> 64-byte buffer
  2622. Return: CF clear if successful
  2623.         buffer filled with 63-byte directory info and 1-byte group number
  2624.     CF set on error (invalid entry)
  2625. SeeAlso: AH=F0h,AH=F3h
  2626. --------N-7FF3-------------------------------
  2627. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
  2628.     AH = F3h
  2629.     AL = group number
  2630.     CX = entry number
  2631.     ES:DI -> 64-byte buffer
  2632. Return: CF clear if successful
  2633.         CX = next entry number
  2634.         buffer filled with 63-byte directory info and 1-byte group number
  2635.     CF set on error (no more matching entries)
  2636. Note:    like AH=F2h, but only returns directories belonging to the specified
  2637.       group
  2638. SeeAlso: AH=F2h
  2639. --------N-7FF8-------------------------------
  2640. INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
  2641.     AH = F8h
  2642.     AL = group number
  2643.     DL = user number
  2644.     DH = machine number (currently 00h)
  2645. Return: CF clear if successful
  2646.     CF set on error (user already in maximum number of groups)
  2647. Note:    each user is allowed eight group assignments
  2648. SeeAlso: AH=F9h,AH=FAh
  2649. --------N-7FF9-------------------------------
  2650. INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
  2651.     AH = F9h
  2652.     AL = group number
  2653.     DL = user number
  2654.     DH = machine number (currently 00h)
  2655. Return: CF clear if successful
  2656.     CF set if failed
  2657. SeeAlso: AH=F8h,AH=FAh
  2658. --------N-7FFA-------------------------------
  2659. INT 7F - Alloy MW386 - GET USER GROUP LIST
  2660.     AH = FAh
  2661.     DL = user number
  2662.     DH = machine number (currently 00h)
  2663.     ES:DI -> 16-byte buffer for group list
  2664. Return: CX = number of groups
  2665.     ES:DI buffer filled with group numbers
  2666. SeeAlso: AH=F8h,AH=F9h
  2667. --------N-7FFB-------------------------------
  2668. INT 7F - Alloy MW386 - ASSIGN GROUP NAME
  2669.     AH = FBh
  2670.     CL = group number
  2671.     ES:DI -> ASCIZ group name (max 17 bytes)
  2672. SeeAlso: AH=FCh
  2673. --------N-7FFC-------------------------------
  2674. INT 7F - Alloy MW386 - GET GROUP NAME
  2675.     AH = FCh
  2676.     CL = group number
  2677.     ES:DI -> 17-byte buffer for ASCIZ name
  2678. Return: ES:DI buffer filled
  2679. Note:    if the group has not been named, "(unnamed)" is returned
  2680. SeeAlso: AH=FBh
  2681. ----------80---------------------------------
  2682. INT 80 - Q-PRO4 - ???
  2683. --------r-80---------------------------------
  2684. INT 80 - reserved for BASIC
  2685. Note:    this vector and INT 81 through INT ED are modified but not restored by
  2686.       Direct Access v4.0, and may be left dangling by other programs
  2687.       written with the same version of compiled BASIC
  2688. SeeAlso: INT 81"BASIC",INT 86"BASIC",INT EF"BASIC"
  2689. --------E-80---------------------------------
  2690. INT 80 - Phar Lap 386|DOS-Extender - RELOCATED PRINT-SCREEN
  2691. Note:    the extender relocates INT 05 to here by default, but can be told to
  2692.       leave INT 05 alone with the commandline (or DOSX= environment
  2693.       variable) flag -PRIVEC 5
  2694. SeeAlso: INT 05
  2695. ----------80---------------------------------
  2696. INT 80 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!)
  2697. Note:    the factory-default location for the eight bytes of scratchpad RAM
  2698.       needed by the SCSI adapter is 0000h:0200h, which is interrupt
  2699.       vectors 80h and 81h
  2700. SeeAlso: INT 81"BusLogic"
  2701. --------s-80----BL00-------------------------
  2702. INT 80 - SBSIM - "STARTSND" - START SOUND ON SPECIFIED DRIVER
  2703.     BL = 00h
  2704.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  2705. Return: AX = initialization result (see #2555)
  2706. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  2707.       which provides access to multiple drivers for the SoundBlaster
  2708.       board through a single interface
  2709. Range:    INT 80h to INT BFh, selected automatically
  2710. Note:    the SBSIM installation check consists of testing for the signature
  2711.       "SBSIM" at offset 103h in the interrupt handler's segment.
  2712. SeeAlso: INT 80/BL=01h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=03h"SBSIM"
  2713. SeeAlso: INT 80/BX=0000h"SBSIM"
  2714.  
  2715. (Table 2555)
  2716. Values for SBSIM error code:
  2717.  01h    busy--currently in use
  2718.  02h    bad driver specified
  2719.  03h    invalid function
  2720.  04h    voice process already active
  2721.  05h    couldn't start CT-VOICE
  2722.  06h    couldn't start CTVDSK
  2723.  07h    invalid SBSIM handle
  2724.  08h    buffer not initialized yet
  2725.  09h    bad filename
  2726.  0Ah    bad file handle
  2727.  0Bh    driver not started yet
  2728.  0Ch    XMS driver not installed
  2729.  0Dh    no free SBSIM handles
  2730.  0Eh    bad file type
  2731.  0Fh    couldn't free XMS block
  2732.  10h    invalid source selected
  2733.  11h    get pan position failed
  2734.  12h    set pan position failed
  2735.  13h    set volume failed
  2736.  14h    couldn't start fade/pan
  2737.  15h    couldn't stop fade/pan
  2738.  16h    couldn't pause fade/pan
  2739.  17h    not a fade/pan operation
  2740.  18h    bad mode for fade/pan
  2741.  19h    couldn't start fade/pan
  2742.  1Ah    source not fading/panning
  2743.  1Bh    FM or MIDI already playing
  2744.  1Ch    bad MIDI mapper format
  2745. --------s-80----BL01-------------------------
  2746. INT 80 - SBSIM - "PLAYSND" - PLAY MUSIC/VOICE ON SELECTED DRIVER
  2747.     BL = 01h
  2748.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  2749. Return: AX = result (see #2555)
  2750. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  2751. --------s-80----BL02-------------------------
  2752. INT 80 - SBSIM - "STOPSND" - STOP MUSIC/VOICE ON SELECTED DRIVER
  2753.     BL = 02h
  2754.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  2755. Return: nothing
  2756. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  2757. --------s-80----BL03-------------------------
  2758. INT 80 - SBSIM - "PAUSESND" - TEMPORARILY PAUSE PLAYBACK ON SELECTED DRIVER
  2759.     BL = 03h
  2760.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  2761. Return: nothing
  2762. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  2763. SeeAlso: INT 80/BL=05h
  2764. --------s-80----BL04-------------------------
  2765. INT 80 - SBSIM - "RESUMESND" - RESTART PLAYBACK ON SELECTED DRIVER
  2766.     BL = 04h
  2767.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  2768. Return: nothing
  2769. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=03h"SBSIM",INT 80/BL=05h"SBSIM"
  2770. --------s-80----BL05-------------------------
  2771. INT 80 - SBSIM - "GETSNDSTAT" - GET DRIVER'S STATUS
  2772.     BL = 05h
  2773.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  2774. Return: AX = status
  2775. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  2776. --------s-80----BX0000-----------------------
  2777. INT 80 - SoundBlaster SBFM driver - GET VERSION
  2778.     BX = 0000h
  2779. Return: ???
  2780. Note:    SBFM installs at a free interrupt in the range 80h through BFh
  2781. SeeAlso: BX=0008h"SBFM",INT 2F/AX=FBFBh
  2782. --------s-80----BX0000-----------------------
  2783. INT 80 - SBSIM - "QUERYVERSION" - GET VERSION
  2784.     BX = 0000h
  2785. Return: AX = version (AH = major, AL = minor)
  2786. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  2787.       which provides access to multiple drivers for the SoundBlaster
  2788.       board through a single interface
  2789. Range:    INT 80h to INT BFh, selected automatically
  2790. Note:    the SBSIM installation check consists of testing for the signature
  2791.       "SBSIM" at offset 103h in the interrupt handler's segment.
  2792. SeeAlso: BX=0001h"SBSIM",BX=0005h"SBSIM",INT 21/AX=4402h"CTMMSYS"
  2793. SeeAlso: INT 80/BL=00h"SBSIM"
  2794. Index:    installation check;SBSIM|installation check;SoundBlaster
  2795. --------s-80----BX0001-----------------------
  2796. INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
  2797.     BX = 0001h
  2798.     DX:AX -> music status byte
  2799. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0003h"SBFM"
  2800. --------s-80----BX0001-----------------------
  2801. INT 80 - SBSIM - "QUERYDRIVERS" - CHECK DRIVERS INSTALLED
  2802.     BX = 0001h
  2803. Return: AX = bit flags for loaded drivers (see #2556)
  2804. SeeAlso: BX=0000h"SBSIM",BX=0002h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  2805.  
  2806. Bitfields for SBSIM loaded drivers:
  2807. Bit(s)    Description    (Table 2556)
  2808.  0    FM
  2809.  1    double disk-buffered voice driver (DDBV)
  2810.  2    memory voice driver
  2811.  3    auxiliary driver (mixer)
  2812.  4    MIDI
  2813. --------s-80----BX0002-----------------------
  2814. INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
  2815.     BX = 0002h
  2816.     CX = number of instruments
  2817.     DX:AX -> instrument table
  2818. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0005h"SBFM"
  2819. --------s-80----BX0002-----------------------
  2820. INT 80 - SBSIM - GETADDRESS" - GET SELECTED DRIVER'S ENTRY POINT
  2821.     BX = 0002h
  2822.     AX = driver (00h = FM,01h = DDBV,02h = memvoice,03h = mixer,04h = MIDI)
  2823. Return: CF clear if successful
  2824.         DX:AX -> entry point
  2825.     CF set on error
  2826. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  2827. --------s-80----BX0003-----------------------
  2828. INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
  2829.     BX = 0003h
  2830.     AX = clock rate divisor (1193180 / desired frequency in Hertz)
  2831.         FFFFh to restore to 18.2 Hz
  2832. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0004h"SBFM"
  2833. --------s-80----BX0004-----------------------
  2834. INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
  2835.     BX = 0004h
  2836.     AX = driver clock rate divisor (1193180 / frequency in Hertz)
  2837. Note:    default frequency is 96 Hz
  2838. SeeAlso: BX=0000h"SBFM",BX=0003h"SBFM"
  2839. --------s-80----BX0005-----------------------
  2840. INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
  2841.     BX = 0005h
  2842.     AX = semi-tone offset
  2843. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0006h"SBFM"
  2844. --------s-80----BX0005-----------------------
  2845. INT 80 - SBSIM - "GETBUFFERINFO" - GET DRIVER'S BUFFER ADDRESS
  2846.     BX = 0005h
  2847.     AX = driver (00h = FM, 01h = DDB Voice, 04h = MIDI)
  2848. Return: CF clear if successful
  2849.         DX:AX -> buffer
  2850.         CX = buffer size in K
  2851.     CF set on error
  2852. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  2853.       which provides access to multiple drivers for the SoundBlaster
  2854.       board through a single interface
  2855. Range:    INT 80h to INT BFh, selected automatically
  2856. Note:    the SBSIM installation check consists of testing for the signature
  2857.       "SBSIM" at offset 103h in the interrupt handler's segment.
  2858. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0002h"SBSIM",INT 80/BL=00h"SBSIM"
  2859. --------s-80----BX0006-----------------------
  2860. INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
  2861.     BX = 0006h
  2862.     DX:AX -> music block
  2863. Return: AX = status
  2864.         0000h successful
  2865.         0001h music already active
  2866. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF04h
  2867. --------s-80----BX0007-----------------------
  2868. INT 80 - SoundBlaster SBFM driver - STOP MUSIC
  2869.     BX = 0007h
  2870. Return: AX = status
  2871.         0000h successful
  2872.         0001h music not active
  2873. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM",INT 1A/AX=FF05h
  2874. --------s-80----BX0008-----------------------
  2875. INT 80 - SoundBlaster SBFM driver - RESET DRIVER
  2876.     BX = 0008h
  2877. Return: AX = status
  2878.         0000h successful
  2879.         0001h music is active
  2880. SeeAlso: BX=0000h"SBFM"
  2881. --------s-80----BX0009-----------------------
  2882. INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
  2883.     BX = 0009h
  2884. Return: AX = status
  2885.         0000h successful
  2886.         0001h no music active
  2887. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF01h
  2888. --------s-80----BX000A-----------------------
  2889. INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
  2890.     BX = 000Ah
  2891. Return: AX = status
  2892.         0000h successful
  2893.         0001h no music paused
  2894. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM"
  2895. --------s-80----BX000B-----------------------
  2896. INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
  2897.     BX = 000Bh
  2898.     DX:AX -> trap routine
  2899. SeeAlso: BX=0000h"SBFM"
  2900. --------s-80----BX0400-----------------------
  2901. INT 80 - SBSIM - "GETVOLUME" - GET SOURCE'S VOLUME
  2902.     BX = 0400h
  2903.     AX = sound source (see #2557)
  2904. Return: CF clear if successful
  2905.         AX = volume
  2906.     CF set on error
  2907.         AX = error code (see #2555 at INT 80/BL=00h)
  2908. SeeAlso: BX=0401h"SBSIM"
  2909.  
  2910. (Table 2557)
  2911. Values for SBSIM sound source:
  2912.  00h    master volume
  2913.  01h    voice
  2914.  02h    FM
  2915.  03h    CD
  2916.  04h    line in
  2917.  05h    microphone
  2918. --------s-80----BX0401-----------------------
  2919. INT 80 - SBSIM - "SETVOLUME" - SET SOURCE'S VOLUME
  2920.     BX = 0401h
  2921.     AX = sound source (see #2557)
  2922.     DX = new volume
  2923. Return: AX = result (0000h = success) (see also INT 80/BL=00h)
  2924. SeeAlso: BX=0400h"SBSIM"
  2925. --------N-8001-------------------------------
  2926. INT 80 - QPC Software PKTINT.COM - INITIALIZE
  2927.     AH = 01h
  2928. Return: AX = 0000h
  2929.     CX = FFFFh
  2930.     DX = FFFFh
  2931. Notes:    this interrupt is the WinQVTNet protected mode interface to Windows 3.0
  2932.     all buffer pointers are reset back to 0
  2933. --------N-8002-------------------------------
  2934. INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES
  2935.     AH = 02h
  2936.     BX = extra bytes to allocate per packet
  2937. Return: AX = segment address of 10K buffer (for receives???)
  2938.     BX = segment address of 2K buffer (for sends???)
  2939. SeeAlso: AH=05h
  2940. --------N-8003-------------------------------
  2941. INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT
  2942.     AH = 03h
  2943. Return: CX:DX -> receive call address
  2944. Note:    the returned address can be used in the packet driver calls since it
  2945.       will be a valid address in all DOS boxes
  2946. SeeAlso: AH=06h
  2947. --------N-8004-------------------------------
  2948. INT 80 - QPC Software PKTINT.COM - ENABLE???
  2949.     AH = 04h
  2950.     BX = ???
  2951. Return: ???
  2952. SeeAlso: AH=01h
  2953. --------N-8005-------------------------------
  2954. INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS
  2955.     AH = 05h
  2956. Return: AX = amount of buffer currently in use
  2957.     BX = current offset in buffer
  2958.     CX = number of times receive has been called
  2959. SeeAlso: AH=02h
  2960. --------N-8006-------------------------------
  2961. INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET
  2962.     AH = 06h
  2963. Return: BX = next packet offset
  2964.     CX = number of bytes still buffered
  2965.     DX = size of packet released back into buffer pool
  2966. SeeAlso: AH=03h
  2967. --------r-81---------------------------------
  2968. INT 81 - reserved for BASIC
  2969. Note:    this vector is modified but not restored by Direct Access v4.0, and
  2970.       may be left dangling by other programs written with the same version
  2971.       of compiled BASIC
  2972. SeeAlso: INT 80"BASIC",INT 82"BASIC"
  2973. --------N-81---------------------------------
  2974. INT 81 - IBM TOKEN RING ADAPTER - ???
  2975. SeeAlso: INT 82"TOKEN RING",INT 91"TOKEN RING"
  2976. ----------81---------------------------------
  2977. INT 81 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!)
  2978. Note:    the factory-default location for the eight bytes of scratchpad RAM
  2979.       needed by the SCSI adapter is 0000h:0200h, which is interrupt
  2980.       vectors 80h and 81h
  2981. SeeAlso: INT 80"BusLogic"
  2982. --------s-810200---------------------------
  2983. INT 81 - Gravis UltraSound - MegaEm - PROCESS COMMAND LINE
  2984.     AX = 0200h
  2985.     BX = PSP segment
  2986.     SI = ??? (data area)
  2987. Return:    AX = status (see #2558)
  2988.     BL = emulation state
  2989.         bit 1   Emulation is on
  2990.         bit 2   Emulation is off
  2991. Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32
  2992.       emulator for the Gravis UltraSound
  2993. Range:    INT ??? to INT ??? (see INT 21/AX=FD12h)
  2994. SeeAlso: AX=0202h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  2995.  
  2996. (Table 2558)
  2997. Values for MegaEm status:
  2998.  0000h    successful
  2999.  0001h    invalid command line optie
  3000.  0002h    display options
  3001.  0003h    ???
  3002.  0004h    invalid number of voices specified
  3003.  0005h    could not load enough patches to provide acceptable emulation
  3004.  0006h    to many warnings on patch loading
  3005.  0007h    ??? (not used anymore)
  3006.  0008h    /CO and SCSI don't work together
  3007.  0009h    invalid music volume
  3008.  000Ah    invalid master volume
  3009.  000Bh    /SC switch is no longer valid
  3010.  0100h    ??? (some error on patch loading)
  3011. --------s-810202---------------------------
  3012. INT 81h - Gravis UltraSound - MegaEm - ???
  3013.     AX = 0202h
  3014. Return:    AX = ???
  3015. SeeAlso: AX=0200h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  3016. --------s-810300---------------------------
  3017. INT 81h - Gravis UltraSound - MegaEm - LOAD SAMPLE ???
  3018.     AX = 0300h
  3019. Return:    AX = ???
  3020. SeeAlso: AX=0200h,AX=0202h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  3021. --------s-810400---------------------------
  3022. INT 81h - Gravis UltraSound - MegaEm - ???
  3023.     AX = 0400h
  3024.     BX = ??? (segment)
  3025. Return:    AX = ???
  3026.     BX = ???
  3027. Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32
  3028.       emulator for the Gravis UltraSound
  3029. SeeAlso: AX=0200h,AX=0202h,AX=0300h,INT 21/AX=FD12h/BX=3457h
  3030. --------r-82---------------------------------
  3031. INT 82 - reserved for BASIC
  3032. SeeAlso: INT 81"BASIC",INT 83"BASIC"
  3033. --------N-82---------------------------------
  3034. INT 82 - IBM TOKEN RING ADAPTER - ???
  3035.     AH = function
  3036.         00h display message???
  3037.         DS:BX -> string
  3038.     ???
  3039. Return: ???
  3040. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  3041. --------r-83---------------------------------
  3042. INT 83 - reserved for BASIC
  3043. SeeAlso: INT 82"BASIC",INT 84"BASIC"
  3044. --------s-8300-------------------------------
  3045. INT 83 - JM Pro Tracker v5.0 - ???
  3046.     AH = 00h
  3047.     ???
  3048. Return: CF clear (successful)
  3049.     AX = ??? (0302h)
  3050. Program: JM Pro Tracker is a public-domain resident .MOD (digital music)
  3051.       player by Josha Munnik
  3052.  
  3053. (Table 2559)
  3054. Values for JM Pro Tracker error code:
  3055.  000Ah    ???
  3056.  000Bh    ???
  3057.  0014h    ???
  3058.  001Eh    some required parameters have not yet been set
  3059.  001Fh    already playing???
  3060.  FExxh    busy (API call already in progress)
  3061.  FFxxh    invalid function number
  3062. --------s-8301-------------------------------
  3063. INT 83 - JM Pro Tracker v5.0 - ???
  3064.     AH = 01h
  3065.     DX = ??? or FFFFh
  3066.     ???
  3067. Return: CF clear if successful
  3068.     CF set on error
  3069.         AX = error code (see #2559)
  3070. --------s-8302-------------------------------
  3071. INT 83 - JM Pro Tracker v5.0 - ???
  3072.     AH = 02h
  3073.     BX = ???
  3074.     ???
  3075. Return: CF clear if successful
  3076.         AX = ???
  3077.         BX = ???
  3078.         CX = ???
  3079.         DX = ???
  3080.         SI = ???
  3081.     CF set on error
  3082.         AX = error code (000Ah,000Bh,other) (see #2559)
  3083. --------s-8303-------------------------------
  3084. INT 83 - JM Pro Tracker v5.0 - ???
  3085.     AH = 03h
  3086.     BX = ??? (only low four bits, must be nonzero)
  3087.     CX = ???
  3088.     ???
  3089. Return: CF clear if successful
  3090.     CF set on error
  3091.         AX = error code (0014h) (see #2559)
  3092. --------s-8304-------------------------------
  3093. INT 83 - JM Pro Tracker v5.0 - SET DMA BUFFER???
  3094.     AH = 04h
  3095.     CX = number of bytes in suggested buffer
  3096.     ES:DI -> suggested buffer for DMA transfers???
  3097. Return: CF clear if successful
  3098.         ES:AX -> actual buffer (filled with bytes of 80h)
  3099.         CX = actual length (multiple of 4)
  3100.     CF set on error
  3101.         AX = error code (see #2559)
  3102. Note:    the buffer must not cross a 64K DMA page boundary
  3103. --------s-8305-------------------------------
  3104. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  3105.     AH = 05h
  3106.     CX = length of buffer
  3107.     ES:DI -> buffer for/containing ???
  3108. Return: CF clear (successful)
  3109. SeeAlso: AH=06h,AH=07h,AH=18h
  3110. --------s-8306-------------------------------
  3111. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  3112.     AH = 06h
  3113.     CX = length of buffer
  3114.     ES:DI -> buffer for/containing ???
  3115. Return: CF clear (successful)
  3116. SeeAlso: AH=05h,AH=07h,AH=18h
  3117. --------s-8307-------------------------------
  3118. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  3119.     AH = 07h
  3120.     BX = ???
  3121.     CX = length of buffer
  3122.     ES:DI -> buffer for/containing ???
  3123. Return: CF clear (successful)
  3124. SeeAlso: AH=05h,AH=06h,AH=18h
  3125. --------s-8308-------------------------------
  3126. INT 83 - JM Pro Tracker v5.0 - START PLAYING???
  3127.     AH = 08h
  3128.     ???
  3129. Return: CF clear if successful
  3130.        ???
  3131.     CF set on error
  3132.         AX = error code (001Eh,001Fh) (see #2559)
  3133. SeeAlso: AH=09h,AH=0Ah
  3134. --------s-8309-------------------------------
  3135. INT 83 - JM Pro Tracker v5.0 - PAUSE???
  3136.     AH = 09h
  3137.     ???
  3138. Return: CF clear if successful
  3139.     CF set on error
  3140.         AX = error code (see #2559)
  3141. SeeAlso: AH=08h,AH=0Ah
  3142. --------s-830A-------------------------------
  3143. INT 83 - JM Pro Tracker v5.0 - RESUME???
  3144.     AH = 0Ah
  3145.     ???
  3146. Return: CF clear if successful
  3147.     CF set on error
  3148.         AX = error code (001Fh) (see #2559)
  3149. SeeAlso: AH=08h,AH=09h
  3150. --------s-830B-------------------------------
  3151. INT 83 - JM Pro Tracker v5.0 - ???
  3152.     AH = 0Bh
  3153.     BX = ???
  3154.     ???
  3155. Return: CF clear if successful
  3156.     CF set on error
  3157. --------s-830C-------------------------------
  3158. INT 83 - JM Pro Tracker v5.0 - ???
  3159.     AH = 0Ch
  3160.     DX bit 5 = ???
  3161.     ???
  3162. Return: CF clear if successful
  3163.         BX = ??? (FFFFh)
  3164.         CX = ??? (0000h)
  3165.         DX = ???
  3166.     CF set on error
  3167.         AX = error code (see #2559)
  3168. --------s-830D-------------------------------
  3169. INT 83 - JM Pro Tracker v5.0 - ???
  3170.     AH = 0Dh
  3171.     BX = ???
  3172.     ???
  3173. Return: CF clear (successful)
  3174. --------s-830E-------------------------------
  3175. INT 83 - JM Pro Tracker v5.0 - ???
  3176.     AH = 0Eh
  3177.     BX = ??? (ignored if ES:DI = 0000h:0000h)
  3178.     ES:DI -> ??? or 0000h:0000h
  3179. Return: CF clear (successful)
  3180. --------s-830F-------------------------------
  3181. INT 83 - JM Pro Tracker v5.0 - ???
  3182.     AH = 0Fh
  3183.     ???
  3184. Return: CF clear if successful
  3185.         AX = ???
  3186.     CF set on error
  3187.         AX = error code (see #2559)
  3188. --------s-8310-------------------------------
  3189. INT 83 - JM Pro Tracker v5.0 - ???
  3190.     AH = 10h
  3191.     BL = subfunction???
  3192.     CX = ???
  3193.     DX = ???
  3194.     ???
  3195. Return: CF clear if successful
  3196.         CX = DX = ???
  3197.     CF set on error
  3198.         AX = error code (see #2559)
  3199. SeeAlso: AH=18h
  3200. --------s-8311-------------------------------
  3201. INT 83 - JM Pro Tracker v5.0 - ???
  3202.     AH = 11h
  3203.     BL = ???
  3204.     CX = ???
  3205. Return: CF clear (successful)
  3206. --------s-8312-------------------------------
  3207. INT 83 - JM Pro Tracker v5.0 - CLEAR ???
  3208.     AH = 12h
  3209. Return: nothing
  3210. --------s-8313-------------------------------
  3211. INT 83 - JM Pro Tracker v5.0 - ???
  3212.     AH = 13h
  3213.     BX = ???
  3214. Return: CF clear (successful)
  3215. --------s-8314-------------------------------
  3216. INT 83 - JM Pro Tracker v5.0 - ???
  3217.     AH = 14h
  3218.     ???
  3219. Return: CF clear (successful)
  3220.     BX = ???
  3221. --------s-8315-------------------------------
  3222. INT 83 - JM Pro Tracker v5.0 - GET ???
  3223.     AH = 15h
  3224.     BX = what to get (zero/nonzero)
  3225. Return: CF clear if successful
  3226.         BX = ???
  3227.         DX = ???
  3228.     CF set on error
  3229.         AX = error code (see #2559)
  3230. --------s-8316-------------------------------
  3231. INT 83 - JM Pro Tracker v5.0 - ???
  3232.     AH = 16h
  3233.     AL = subfunction
  3234.         00h ???
  3235.         Return: BX = ???
  3236.             CX = ???
  3237.             DX = ???
  3238.             ES:DI -> ???
  3239.             CF indicates ???
  3240.         01h ???
  3241.         Return: BX = ???
  3242.             CX = ???
  3243.             DX = ???
  3244. Return: CF clear if successful
  3245.     CF set on error
  3246.         AX = error code (FFxxh) (see #2559)
  3247. --------s-8317-------------------------------
  3248. INT 83 - JM Pro Tracker v5.0 - UNHOOK API INTERRUPT
  3249.     AH = 17h
  3250. Return: CF clear if successful
  3251.     CF set on error (hooked by another program)
  3252. --------s-8318-------------------------------
  3253. INT 83 - JM Pro Tracker v5.0 - SET BUFFERS
  3254.     AH = 18h
  3255.     ES:DI -> buffer-pointer structure (see #2560)
  3256. Return: nothing
  3257. SeeAlso: AH=05h,AH=06h,AH=07h,AH=10h
  3258.  
  3259. Format of JM Pro Tracker buffer-pointer structure:
  3260. Offset    Size    Description    (Table 2560)
  3261.  00h    WORD    length of ??? buffer (see AH=05h)
  3262.  02h    DWORD    -> ??? buffer (see AH=05h)
  3263.  06h    WORD    length of ??? buffer (see AH=06h)
  3264.  08h    DWORD    -> ??? buffer (see AH=06h)
  3265.  0Ch    WORD    length of ??? buffer (see AH=07h)
  3266.  0Eh    DWORD    -> ??? buffer (see AH=07h)
  3267.  12h    WORD    ??? (see AH=07h)
  3268.  14h    WORD    ??? (see AH=10h) (subfunction 01h)
  3269.  16h    WORD    ??? (see AH=10h) (subfunction 01h)
  3270.  18h    WORD    ??? (see AH=10h) (subfunction 00h)
  3271.  1Ah    WORD    ??? (see AH=10h) (subfunction 01h)
  3272. --------r-84---------------------------------
  3273. INT 84 - reserved for BASIC
  3274. SeeAlso: INT 83"BASIC",INT 85"BASIC"
  3275. --------r-85---------------------------------
  3276. INT 85 - reserved for BASIC
  3277. Note:    INT 80 through INT ED are modified but not restored by Direct Access
  3278.       v4.0, and may be left dangling by other programs written with the
  3279.       same version of compiled BASIC
  3280. SeeAlso: INT 84"BASIC",INT 86"BASIC"
  3281. --------N-86---------------------------------
  3282. INT 86 - NetBIOS - ORIGINAL INT 18
  3283. Note:    some implementations of NetBIOS reportedly relocate INT 18 here
  3284. SeeAlso: INT 18
  3285. --------r-86---------------------------------
  3286. INT 86 - IBM ROM BASIC - used while in interpreter
  3287. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3288.     BASIC.COM/BASICA.COM do not restore vector on termination
  3289. SeeAlso: INT 85"BASIC",INT 87"BASIC"
  3290. --------r-86---------------------------------
  3291. INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS
  3292. SeeAlso: INT 21/AH=4Ch,INT 87"APL"
  3293. --------r-87---------------------------------
  3294. INT 87 - IBM ROM BASIC - used while in interpreter
  3295. Notes:    called by ROM BASIC
  3296.     BASIC.COM/BASICA.COM do not restore vector on termination
  3297. SeeAlso: INT 86"BASIC",INT 88"BASIC"
  3298. --------r-87---------------------------------
  3299. INT 87 - APL*PLUS/PC - ???
  3300. SeeAlso: INT 86"APL",INT 88/AL=00h
  3301. --------v-87---------------------------------
  3302. INT 87 - VIRUS - "ZeroHunt" - VIRAL CODE (NOT A VECTOR!)
  3303. Note:    the ZeroHunt virus copies its resident code down to 0000h:021Ch and
  3304.       following
  3305. SeeAlso: INT 8B"VIRUS"
  3306. --------r-88---------------------------------
  3307. INT 88 - IBM ROM BASIC - used while in interpreter
  3308. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3309.     BASIC.COM/BASICA.COM do not restore vector on termination
  3310. SeeAlso: INT 87"BASIC",INT 89"BASIC"
  3311. --------r-88--00-----------------------------
  3312. INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE
  3313.     AL = 00h
  3314.     BX = STPTR of the variable to be assigned
  3315.     ES:SI -> model of type, rank, and shape (see #2561)
  3316. Return: ES:DI -> first data byte of object
  3317.     DX:CX = number of elements in the object
  3318. SeeAlso: INT C8"APL"
  3319.  
  3320. Format of APL*PLUS/PC shape model:
  3321. Offset    Size    Description    (Table 2561)
  3322.  00h    BYTE    type
  3323.         01h character (2-byte dimension sizes)
  3324.         02h integer (2-byte dimension sizes)
  3325.         08h floating point (2-byte dimension sizes)
  3326.         11h character (4-byte dimension sizes)
  3327.         12h integer (4-byte dimension sizes)
  3328.         18h floating point (4-byte dimension sizes)
  3329.  01h    BYTE    rank
  3330.  02h    (D)WORD first dimension of shape
  3331.  N    (D)WORD second dimension of shape
  3332.     ...
  3333. --------r-88--01-----------------------------
  3334. INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE
  3335.     AL = 01h
  3336.     AH = rank
  3337.     BX = STPTR of the variable to be assigned
  3338.     CX = first dimension (if any)
  3339.     DX = second dimension (if any)
  3340. Return: ES:DI -> object
  3341.     CX = number of elements in the object
  3342. Note:    each dimension must be 32767 or smaller
  3343. SeeAlso: AL=02h,AL=08h,INT C8"APL"
  3344. --------r-88--02-----------------------------
  3345. INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE
  3346.     AL = 02h
  3347.     AH = rank
  3348.     BX = STPTR of the variable to be assigned
  3349.     CX = first dimension (if any)
  3350.     DX = second dimension (if any)
  3351. Return: ES:DI -> object
  3352.     CX = number of elements in the object
  3353. Note:    each dimension must be 32767 or smaller
  3354. SeeAlso: AL=01h,AL=08h,INT C8"APL"
  3355. --------r-88--08-----------------------------
  3356. INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE
  3357.     AL = 08h
  3358.     AH = rank
  3359.     BX = STPTR of the variable to be assigned
  3360.     CX = first dimension (if any)
  3361.     DX = second dimension (if any)
  3362. Return: ES:DI -> object
  3363.     CX = number of elements in the object
  3364. Note:    each dimension must be 32767 or smaller
  3365. SeeAlso: AL=01h,AL=02h,INT C8"APL"
  3366. --------r-88--F5-----------------------------
  3367. INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL
  3368.     AL = F5h
  3369.     BX = STPTR of object
  3370. SeeAlso: INT C8"APL"
  3371. --------r-88--F6-----------------------------
  3372. INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING
  3373.     AL = F6h
  3374.     BX = STPTR of object
  3375. SeeAlso: AL=F7h,AL=F8h,INT C8"APL"
  3376. --------r-88--F7-----------------------------
  3377. INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING
  3378.     AL = F7h
  3379.     BX = STPTR of object
  3380. SeeAlso: AL=F6h,AL=F8h,INT C8"APL"
  3381. --------r-88--F8-----------------------------
  3382. INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING
  3383.     AL = F8h
  3384.     BX = STPTR of object
  3385. Return: BX = name's outswapping status
  3386.         0000h eligible
  3387.         0001h not eligible
  3388. SeeAlso: AL=F6h,AL=F7h,INT C8"APL"
  3389. --------r-88--F9-----------------------------
  3390. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  3391.     AL = F9h
  3392.     ES:SI -> name
  3393.     CX = length of name
  3394. Return: CF set if name ill-formed or already in use
  3395.         BX = STPTR if already in symbol table
  3396.     CF clear if name is available for use
  3397.         BX = 0000h
  3398. Note:    does not force the name into the workspace
  3399. SeeAlso: AL=FEh,AL=FFh,INT C8"APL"
  3400. --------r-88--FC-----------------------------
  3401. INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION
  3402.     AL = FCh
  3403.     BX = amount of memory needed (paragraphs)
  3404. Return: CF clear if memory available
  3405.     CF set if a workspace compaction is required
  3406. SeeAlso: AL=FDh,INT C8"APL"
  3407. --------r-88--FD-----------------------------
  3408. INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY
  3409.     AL = FDh
  3410. Return: BX = number of paragraphs available in workspace
  3411. SeeAlso: AL=FCh,INT C8"APL"
  3412. --------r-88--FE-----------------------------
  3413. INT 88 - APL*PLUS/PC - CREATE NAME
  3414.     AL = FEh
  3415.     ES:SI -> name
  3416.     CX = length of name
  3417. Return: BX = STPTR of name
  3418.     DX = interpreter's data segment
  3419. SeeAlso: AL=F9h,AL=FFh,INT C8"APL"
  3420. --------r-88--FF-----------------------------
  3421. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  3422.     AL = FFh
  3423.     ES:SI -> name
  3424.     CX = length of name
  3425. Return: CF set if name ill-formed or already in use
  3426.         BX = STPTR if already in symbol table
  3427.     CF clear if name is available for use
  3428.         BX = 0000h
  3429. Note:    forces the name into the workspace and makes it immune from outswapping
  3430. SeeAlso: AL=F9h,AL=FEh,INT C8"APL"
  3431. --------r-89---------------------------------
  3432. INT 89 - IBM ROM BASIC - used while in interpreter
  3433. Notes:    called by ROM BASIC
  3434.     BASIC.COM/BASICA.COM do not restore vector on termination
  3435. SeeAlso: INT 88"BASIC",INT 8A"BASIC"
  3436. --------r-8A---------------------------------
  3437. INT 8A - IBM ROM BASIC - used while in interpreter
  3438. Notes:    called by ROM BASIC
  3439.     BASIC.COM/BASICA.COM do not restore vector on termination
  3440. SeeAlso: INT 89"BASIC",INT 8B"BASIC"
  3441. --------r-8A---------------------------------
  3442. INT 8A - APL*PLUS/PC - PRINT SCREEN
  3443. Note:    same as INT 05
  3444. SeeAlso: INT 05,INT 8C"APL",INT CA"APL"
  3445. --------r-8B---------------------------------
  3446. INT 8B - IBM ROM BASIC - used while in interpreter
  3447. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3448.     BASIC.COM/BASICA.COM do not restore vector on termination
  3449. SeeAlso: INT 8A"BASIC",INT 8C"BASIC"
  3450. --------r-8B---------------------------------
  3451. INT 8B - APL*PLUS/PC - BEEP
  3452. Note:    same as printing a ^G via INT 21/AH=02h
  3453. SeeAlso: INT 21/AH=02h,INT CB"APL"
  3454. --------v-8B---------------------------------
  3455. INT 8B - VIRUS - "ZeroHunt" - INSTALLATION CHECK (NOT A VECTOR!)
  3456. Note:    if the ZeroHunt virus is resident, this vector will contain either
  3457.       EE83h:019Bh (ZH-411) or EE83h:019Fh (ZH-415)
  3458. SeeAlso: INT 70"VIRUS",INT 87"VIRUS",INT 9C"VIRUS"
  3459. --------r-8C---------------------------------
  3460. INT 8C - IBM ROM BASIC - used while in interpreter
  3461. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3462.     BASIC.COM/BASICA.COM do not restore vector on termination
  3463. --------r-8C---------------------------------
  3464. INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY
  3465.     AX = flag
  3466.         0000h do not save display attributes
  3467.         0001h save attributes
  3468. SeeAlso: INT CC"APL"
  3469. --------r-8D---------------------------------
  3470. INT 8D - IBM ROM BASIC - used while in interpreter
  3471. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3472.     BASIC.COM/BASICA.COM do not restore vector on termination
  3473. --------r-8E---------------------------------
  3474. INT 8E - IBM ROM BASIC - used while in interpreter
  3475. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3476.     BASIC.COM/BASICA.COM do not restore vector on termination
  3477. --------r-8F---------------------------------
  3478. INT 8F - IBM ROM BASIC - used while in interpreter
  3479. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3480.     BASIC.COM/BASICA.COM do not restore vector on termination
  3481. --------r-90---------------------------------
  3482. INT 90 - IBM ROM BASIC - used while in interpreter
  3483. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3484.     BASIC.COM/BASICA.COM do not restore vector on termination
  3485. --------r-90---------------------------------
  3486. INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER
  3487. --------r-91---------------------------------
  3488. INT 91 - IBM ROM BASIC - used while in interpreter
  3489. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3490.     BASIC.COM/BASICA.COM do not restore vector on termination
  3491. --------N-91---------------------------------
  3492. INT 91 - IBM TOKEN RING ADAPTER - ???
  3493. SeeAlso: INT 81"TOKEN RING",INT 82"TOKEN RING",INT 93"TOKEN RING"
  3494. --------r-92---------------------------------
  3495. INT 92 - IBM ROM BASIC - used while in interpreter
  3496. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3497.     BASIC.COM/BASICA.COM do not restore vector on termination
  3498. --------N-92---------------------------------
  3499. INT 92 - Sangoma X.25 INTERFACE PROGRAM
  3500.     BX:DX -> control block
  3501. SeeAlso: INT 68"Sangoma"
  3502. --------e-92E1-------------------------------
  3503. INT 92 - Da Vinci eMail Dispatcher INTERFACE
  3504.     AH = E1h
  3505.     AL = function
  3506.     BX = stack count (number of words to push)
  3507.     CX:DX -> stack data (in word-reversed order ready to push)
  3508. Return: AX = status (see #2562)
  3509. Note:    preserves BP, DS, SI, DI; other registers may be destroyed
  3510.  
  3511. (Table 2562)
  3512. Values for Da Vinci eMail function status:
  3513.  0001h    success
  3514.  FF97h    "ERS_NOT_AVAILABLE"
  3515.  FF99h    "ERS_TOO_MANY_NAMES"
  3516.  FF9Ah    "ERS_BAD_NAME_PASSWORD"
  3517.  FFE3h    "ERS_NAME_NOT_FOUND"
  3518.  FFF8h    "ERS_USE_STRING" (call NetGetError to get error string)
  3519.  FFFFh    "ERS_NO_SUCH_FILE"
  3520. --------e-92E100-----------------------------
  3521. INT 92 - Da Vinci eMail Dispatcher - "NetInitStart"
  3522.     AX = E100h
  3523.     BX = size of parameter block in words (000Ah)
  3524.     CX:DX -> parameter block (see #2563)
  3525. Return: AX = 0001h success
  3526. Desc:    this function is used to initialize the dispatcher
  3527. SeeAlso: AX=E101h,AX=E103h
  3528.  
  3529. Format of Da Vinci eMail "NetInitStart" parameter block:
  3530. Offset    Size    Description    (Table 2563)
  3531.  00h    WORD    segment of ???
  3532.  02h    WORD    offset of ???
  3533.  04h    WORD    high part of long ???
  3534.  06h    WORD    low part of long ???
  3535.  08h    WORD    high part of long ???
  3536.  0Ah    WORD    low part of long ???
  3537.  0Ch    WORD    high part of long ???
  3538.  0Eh    WORD    low part of long ???
  3539.  10h    WORD    high part of long ???
  3540.  12h    WORD    low part of long ???
  3541. --------e-92E101BX0000-----------------------
  3542. INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck"
  3543.     AX = E101h
  3544.     BX = 0000h
  3545.     CX:DX ignored
  3546. Return: AX = 0001h success
  3547. SeeAlso: AX=E100h,AX=E180h
  3548. --------e-92E102BX0000-----------------------
  3549. INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver"
  3550.     AX = E102h
  3551.     BX = 0000h
  3552.     CX:DX ignored
  3553. Return: AX = 0001h success
  3554. Desc:    this function is used to determine if the dispatcher is loaded
  3555. SeeAlso: AX=E10Bh,AX=E180h
  3556. --------e-92E103BX0000-----------------------
  3557. INT 92 - Da Vinci eMail Dispatcher - "NetTerminate"
  3558.     AX = E103h
  3559.     BX = 0000h
  3560.     CX:DX ignored
  3561. Return: AX = status (see #2562)
  3562. SeeAlso: AX=E100h
  3563. --------e-92E104-----------------------------
  3564. INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs"
  3565.     AX = E104h
  3566.     BX = size of parameter block in words (0006h)
  3567.     CX:DX -> parameter block (see #2564)
  3568. Return: AX = status (see #2562)
  3569. Desc:    this function is used to verify node address for usernames
  3570. SeeAlso: AX=E180h
  3571.  
  3572. Format of Da Vinci eMail "NetWhereIs" parameter block:
  3573. Offset    Size    Description    (Table 2564)
  3574.  00h    WORD    segment of node address buffer
  3575.  02h    WORD    offset of node address buffer
  3576.  04h    WORD    segment of uppercase username
  3577.  06h    WORD    offset of uppercase username
  3578.  08h    WORD    segment of "DVSEMAIL"
  3579.  0Ah    WORD    offset of "DVSEMAIL"
  3580. --------e-92E105-----------------------------
  3581. INT 92 - Da Vinci eMail Dispatcher - "NetOpen"
  3582.     AX = E105h
  3583.     BX = size of parameter block in words (0007h)
  3584.     CX:DX -> parameter block (see #2565)
  3585. Return: AX = 0000h Error
  3586.     AX = handle
  3587. Desc:    this function is used to open a submission channel
  3588. SeeAlso: AX=E10Ah,AX=E106h,AX=E108h
  3589.  
  3590. Format of Da Vinci eMail "NetOpen" parameter block:
  3591. Offset    Size    Description    (Table 2565)
  3592.  00h    WORD    operation (1 = read, 2 = write)
  3593.  02h    WORD    segment of uppercase To: username
  3594.  04h    WORD    offset of uppercase To: username
  3595.  06h    WORD    segment of "DVSEMAIL"
  3596.  08h    WORD    offset of "DVSEMAIL"
  3597.  0Ah    WORD    segment of node address
  3598.  0Ch    WORD    offset of node address
  3599. --------e-92E106BX0004-----------------------
  3600. INT 92 - Da Vinci eMail Dispatcher - "NetRead"
  3601.     AX = E106h
  3602.     BX = 0004h
  3603.     CX:DX -> parameter block
  3604. Return: AX = 0001h
  3605. SeeAlso: AX=E108h
  3606. --------e-92E107BX0002-----------------------
  3607. INT 92 - Da Vinci eMail Dispatcher - "NetGetError"
  3608.     AX = E107h
  3609.     BX = 0002h
  3610.     CX:DX -> parameter block
  3611. Return: AX = 0001h
  3612. SeeAlso: AX=E109h,AX=E180h
  3613. --------e-92E108-----------------------------
  3614. INT 92 - Da Vinci eMail Dispatcher - "NetWrite"
  3615.     AX = E108h
  3616.     BX = size of parameter block in words (0004h)
  3617.     CX:DX -> parameter block (see #2566)
  3618. Return: AX = amount written
  3619. Desc:    This function is used to write transactions to the dispatcher.
  3620.       The command block is written first and then another call is used
  3621.       to write the associated data.
  3622. SeeAlso: AX=E106h
  3623.  
  3624. Format of Da Vinci eMail "NetWrite" parameter block:
  3625. Offset    Size    Description    (Table 2566)
  3626.  00h    WORD    buffer count (see #2568)
  3627.  02h    WORD    segment of command buffer (see #2567)
  3628.  04h    WORD    offset of command buffer
  3629.  06h    WORD    handle from NetOpen
  3630.  
  3631. Format of Da Vinci eMail command buffer:
  3632. Offset    Size    Description    (Table 2567)
  3633.  00h    BYTE    command
  3634.         21h '!' Protocol commands for remote control
  3635.         41h 'A' Authorization protocol element
  3636.         42h 'B' Return(back) routing information
  3637.             Associated data is the From: username
  3638.         43h 'C' Carbon Copy list
  3639.             Associated data is a comma delimitted list of usernames
  3640.         44h 'D' Distribution list
  3641.             Associated data is a comma delimitted list of usernames
  3642.         45h 'E' Mail end marker
  3643.             No associated data
  3644.         48h 'H' Mail message header
  3645.             Associated data is a message header buffer
  3646.         4Dh 'M' Mail message
  3647.             Associated data is the body of the message
  3648.         4Fh 'O' Object
  3649.         50h 'P' Paperclip attachment
  3650.         52h 'R' Routing information
  3651.             Associated data is the To: username
  3652.         53h 'S' Subject
  3653.             Associated data is the subject of the message
  3654.         54h 'T' Trail of Reply/Forwards
  3655.  01h    BYTE    subcommand
  3656.  02h    DWORD    length of associated data
  3657.  
  3658. Format of Da Vinci eMail message header buffer:
  3659. Offset    Size    Description    (Table 2568)
  3660.  00h 30 BYTEs    subject line
  3661.  1Eh 24 BYTEs    To
  3662.  36h 24 BYTEs    From
  3663.  4Eh    DWORD    Time
  3664.         BYTE    00h
  3665.         BYTE    hour
  3666.         BYTE    minute
  3667.         BYTE    second
  3668.  52h    DWORD    Date
  3669.         BYTE    00h
  3670.         BYTE    year
  3671.         BYTE    month
  3672.         BYTE    day
  3673.  56h    DWORD    serial number (00000000h)
  3674.  5Ah    WORD    mail types (see #2569)
  3675.  5Ch    WORD    special types (0)
  3676.  
  3677. Bitfields for Da Vinci eMail mail types:
  3678. Bit(s)    Description    (Table 2569)
  3679.  7    blind carbon copy
  3680.  6    carbon copy
  3681.  5    priority
  3682.  4    confidential
  3683.  3    certified
  3684.  2    bulk
  3685.  1-0    class (first, second, third, bulk)
  3686. --------e-92E109-----------------------------
  3687. INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED)
  3688.     AX = E109h
  3689.     BX = size of parameter block in words (0001h)
  3690.     CX:DX -> parameter block (see #2570)
  3691. Return: AX = FF97h (ERS_NOT_AVAILABLE)
  3692. SeeAlso: AX=E107h,AX=E180h
  3693.  
  3694. Format of Da Vinci eMail "NetErrorFix" parameter block:
  3695. Offset    Size    Description    (Table 2570)
  3696.  00h    WORD    ???
  3697. --------e-92E10A-----------------------------
  3698. INT 92 - Da Vinci eMail Dispatcher - "NetClose"
  3699.     AX = E10Ah
  3700.     BX = size of parameter block in words (0001h)
  3701.     CX:DX -> parameter block (see #2571)
  3702. Return: AX = 0001h
  3703. Desc:    this function is used to close a dispatcher handle
  3704. SeeAlso: AX=E105h
  3705.  
  3706. Format of Da Vinci eMail "NetClose" parameter block:
  3707. Offset    Size    Description    (Table 2571)
  3708.  00h    WORD    handle from NetOpen
  3709. --------e-92E10B-----------------------------
  3710. INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue"
  3711.     AX = E10Bh
  3712.     BX = size of parameter block in words (0004h)
  3713.     CX:DX -> parameter block (see #2572)
  3714. Return: AX = 0001h
  3715. SeeAlso: AX=E102h,AX=E10Ch
  3716.  
  3717. Format of Da Vinci eMail "NetCheckQueue" parameter block:
  3718. Offset    Size    Description    (Table 2572)
  3719.  00h    WORD    segment of 24-byte username buffer
  3720.  02h    WORD    offset of 24-byte username buffer
  3721.  04h    WORD    segment of 24-byte protocol buffer
  3722.  06h    WORD    offset of 24-byte protocol buffer
  3723. --------e-92E10C-----------------------------
  3724. INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue"
  3725.     AX = E10Ch
  3726.     BX = size of parameter block in words (0002h)
  3727.     CX:DX -> parameter block (see #2573)
  3728. Return: AX = 0001h
  3729. SeeAlso: AX=E10Bh
  3730.  
  3731. Format of Da Vinci eMail "NetReadQueue" parameter block:
  3732. Offset    Size    Description    (Table 2573)
  3733.  00h    WORD    Segment of 128 byte node address buffer
  3734.  02h    WORD    Offset of 128 byte node address buffer
  3735. --------e-92E10D-----------------------------
  3736. INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName"
  3737.     AX = E10Dh
  3738.     BX = size of parameter block in words (0006h)
  3739.     CX:DX -> parameter block (see #2574)
  3740. Return: AX = status (see #2562)
  3741. Desc:    this function is used to verify username/password
  3742. SeeAlso: AX=E10Eh
  3743.  
  3744. Format of Da Vinci eMail "NetSubmitName" parameter block:
  3745. Offset    Size    Description    (Table 2574)
  3746.  00h    WORD    segment of uppercase password string
  3747.  02h    WORD    offset of uppercase password string
  3748.  04h    WORD    segment of uppercase username string
  3749.  06h    WORD    offset of uppercase username string
  3750.  08h    WORD    segment of "DVSEMAIL"
  3751.  0Ah    WORD    offset of "DVSEMAIL"
  3752. --------e-92E10E-----------------------------
  3753. INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName"
  3754.     AX = E10Eh
  3755.     BX = size of parameter block in words (0004h)
  3756.     CX:DX -> parameter block (see #2575)
  3757. Return: AX = 0001h
  3758. Desc:    this function is used to remove a username
  3759. SeeAlso: AX=E10Dh
  3760.  
  3761. Format of Da Vinci eMail "NetRemoveName" parameter block:
  3762. Offset    Type    Description    (Table 2575)
  3763.  00h    WORD    segment of uppercase username
  3764.  02h    WORD    offset of uppercase username
  3765.  04h    WORD    segment of "DVSEMAIL"
  3766.  06h    WORD    offset of "DVSEMAIL"
  3767. --------e-92E10FBX0000-----------------------
  3768. INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY
  3769.     AX = E10Fh
  3770.     BX = 0000h
  3771.     CX:DX ignored
  3772. Return: AX = 0001h
  3773. SeeAlso: AX=E180h
  3774. --------e-92E110-----------------------------
  3775. INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute"
  3776.     AX = E110h
  3777.     BX = size of parameter block in words (0006h)
  3778.     CX:DX -> parameter block (see #2576)
  3779. Return: AX = 0001h
  3780. SeeAlso: AX=E111h,AX=E113h
  3781.  
  3782. Format of Da Vinci eMail "NetGetAltRoute" parameter block:
  3783. Offset    Size    Description    (Table 2576)
  3784.  00h  6 WORDs    ???
  3785. --------e-92E111-----------------------------
  3786. INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes"
  3787.     AX = E111h
  3788.     BX = size of parameter block in words (0004h)
  3789.     CX:DX -> parameter block (see #2577)
  3790. Return: AX = 0001h
  3791. SeeAlso: AX=E110h,AX=E113h
  3792.  
  3793. Format of Da Vinci eMail "NetDeleteAltRoutes" parameter block:
  3794. Offset    Size    Description    (Table 2577)
  3795.  00h  4 WORDs    ???
  3796. --------e-92E112-----------------------------
  3797. INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword"
  3798.     AX = E112h
  3799.     BX = size of parameter block in words (0008h)
  3800.     CX:DX -> parameter block (see #2578)
  3801. Return: AX = 0001h
  3802. SeeAlso: AX=E180h
  3803.  
  3804. Format of Da Vinci eMail "NetChangePassword" parameter block:
  3805. Offset    Size    Description    (Table 2578)
  3806.  00h  8 WORDs    ???
  3807. --------e-92E113-----------------------------
  3808. INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute"
  3809.     AX = E113h
  3810.     BX = size of parameter block in words (0008h)
  3811.     CX:DX -> parameter block (see #2579)
  3812. Return: AX = 0001h
  3813. SeeAlso: AX=E110h,AX=E111h
  3814.  
  3815. Format of Da Vinci eMail "NetSetAltRoute" parameter block:
  3816. Offset    Size    Description    (Table 2579)
  3817.  00h  8 WORDs    ???
  3818. --------e-92E175-----------------------------
  3819. INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR
  3820.     AX = E175h
  3821. Return: AX = 0012h
  3822.     BX = PSP
  3823. SeeAlso: AX=E180h
  3824. --------e-92E180-----------------------------
  3825. INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK
  3826.     AX = E180h
  3827. Return: AX = 0012h if installed
  3828.     ES:DX -> '$'-terminated driver information string
  3829. SeeAlso: AX=E102h,AX=E105h,AX=E10Fh,AX=E175h
  3830. --------r-93---------------------------------
  3831. INT 93 - IBM ROM BASIC - used while in interpreter
  3832. Notes:    called by ROM BASIC
  3833.     BASIC.COM/BASICA.COM do not restore vector on termination
  3834. --------N-93---------------------------------
  3835. INT 93 - IBM TOKEN RING ADAPTER - ???
  3836. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  3837. --------r-94---------------------------------
  3838. INT 94 - IBM ROM BASIC - used while in interpreter
  3839. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3840.     BASIC.COM/BASICA.COM do not restore vector on termination
  3841. --------s-94----SI0000-----------------------
  3842. INT 94 u - PCM driver - INITIALIZE SOUND
  3843.     SI = 0000h
  3844.     ES:BX -> parameters
  3845. Return: ???
  3846. Program: PCM.COM is a sound driver for Media Vision's Pro Audio Spectrum
  3847.       sound boards
  3848. Note:    the installation check consists of testing for the signature string
  3849.       "PCMDRIVER" immediately preceding the interrupt handler; the word
  3850.       preceding the signature gives the PCM driver's version
  3851. SeeAlso: SI=0001h,SI=0002h,SI=0003h,SI=0004h,SI=0005h,SI=000Ah
  3852. Index:    installation check;PCM driver|PCM.COM;installation check
  3853. Index:    PCM driver;installation check
  3854. --------s-94----SI0001-----------------------
  3855. INT 94 u - PCM driver - INITIALIZE PCM
  3856.     SI = 0001h
  3857.     ES:BX -> parameters
  3858. Return: ???
  3859. SeeAlso: SI=0000h,SI=0002h,SI=0003h,SI=000Ah
  3860. --------s-94----SI0002-----------------------
  3861. INT 94 u - PCM driver - INITIALIZE PCM INFO
  3862.     SI = 0002h
  3863.     ES:BX -> parameters (see #2580)
  3864. Return: ???
  3865. SeeAlso: SI=0000h,SI=0001h,SI=0003h,SI=000Ah
  3866.  
  3867. Format of PCM driver function 0002h parameters:
  3868. Offset    Size    Description    (Table 2580)
  3869.  00h    DWORD    rate
  3870.  04h    WORD    channel number
  3871.  06h    WORD    "comp"
  3872.  08h    WORD    "dsize"
  3873. --------s-94----SI0003-----------------------
  3874. INT 94 u - PCM driver - INITIALIZE DMA BUFFER
  3875.     SI = 0003h
  3876.     ES:BX -> parameters (see #2581)
  3877. Return: ???
  3878. SeeAlso: SI=0000h,SI=000Ah,SI=000Bh
  3879.  
  3880. Format of PCM driver function 0003h parameters:
  3881. Offset    Size    Description    (Table 2581)
  3882.  00h    DWORD    -> DMA buffer
  3883.  04h    WORD    size of DMA buffer
  3884.  06h    WORD    number of divisions
  3885. --------s-94----SI0004-----------------------
  3886. INT 94 u - PCM driver - INITIALIZE USER FUNCTION
  3887.     SI = 0004h
  3888.     ES:BX -> parameters (see #2582)
  3889. Return: ???
  3890. SeeAlso: SI=0000h,SI=0001h
  3891.  
  3892. Format of PCM driver function 0004h parameters:
  3893. Offset    Size    Description    (Table 2582)
  3894.  00h    DWORD    -> user function
  3895. --------s-94----SI0005-----------------------
  3896. INT 94 u - PCM driver - BEGIN AUDIO PLAY
  3897.     SI = 0005h
  3898. Return: ???
  3899. SeeAlso: SI=0000h,SI=0006h,SI=0007h,SI=0009h
  3900. --------s-94----SI0006-----------------------
  3901. INT 94 u - PCM driver - BEGIN AUDIO RECORD
  3902.     SI = 0006h
  3903. Return: ???
  3904. SeeAlso: SI=0005h,SI=0007h,SI=0009h
  3905. --------s-94----SI0007-----------------------
  3906. INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD
  3907.     SI = 0007h
  3908. Return: ???
  3909. SeeAlso: SI=0005h,SI=0006h,SI=0008h
  3910. --------s-94----SI0008-----------------------
  3911. INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD
  3912.     SI = 0008h
  3913. Return: ???
  3914. SeeAlso: SI=0007h
  3915. --------s-94----SI0009-----------------------
  3916. INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD
  3917.     SI = 0009h
  3918. Return: ???
  3919. SeeAlso: SI=0005h,SI=0006h,SI=0007h
  3920. --------s-94----SI000A-----------------------
  3921. INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA
  3922.     SI = 000Ah
  3923. Return: ???
  3924. SeeAlso: SI=0000h,SI=0001h,SI=0003h
  3925. Index:    uninstall;PCM driver
  3926. --------s-94----SI000B-----------------------
  3927. INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK
  3928.     SI = 000Bh
  3929.     ES:BX -> parameters (see #2583)
  3930. Return: ???
  3931. SeeAlso: SI=0003h
  3932.  
  3933. Format of PCM driver functio 000Bh parameters:
  3934. Offset    Size    Description    (Table 2583)
  3935.  00h    DWORD    -> memory block to contain DMA buffer
  3936.  04h    WORD    desired size of DMA buffer
  3937. --------s-94----SI000D-----------------------
  3938. INT 94 u - Media Vision PCM.COM - GET STATUS
  3939.     SI = 000Dh
  3940. Return: AX = status (0000h = waiting) (see #2584)
  3941.  
  3942. Bitfields for PCM.COM status:
  3943. Bit(s)    Description    (Table 2584)
  3944.  0    playing
  3945.  1    recording
  3946.  2    SBplaying
  3947.  3    SBrecording
  3948.  14    SBpaused
  3949.  15    paused
  3950. --------s-94----SI8000-----------------------
  3951. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS
  3952.     SI = 8000h
  3953. Return: DX:AX -> DMA buffer
  3954. Program: PCM.COM is a superset of the standard PCM driver which provides
  3955.       additional functions for fine control of the driver
  3956. Note:    the installation check for the Media Vision PCM.COM "shark" functions
  3957.       consists of testing for the signature "PCM-SHARK" at offset 107h in
  3958.       the INT 94 handler's segment
  3959. SeeAlso: SI=8001h,SI=8004h
  3960. Index:    installation check;Media Vision PCM.COM|PCM.COM;installation check
  3961. Index:    Media Vision PCM.COM;"shark" functions
  3962. --------s-94----SI8001-----------------------
  3963. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS
  3964.     SI = 8001h
  3965. Return: AX = DMA buffer size
  3966.     DX = divisions
  3967. SeeAlso: SI=8000h
  3968. --------s-94----SI8002-----------------------
  3969. INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS
  3970.     SI = 8002h
  3971. Return: AX = status
  3972.         0000h if board not at specified I/O address
  3973.         other if board found
  3974. Note:    the I/O address is specified by ORing the base I/O port shifted left
  3975.       four bits into SI before calling INT 94
  3976. SeeAlso: SI=8000h
  3977. --------s-94----SI8004-----------------------
  3978. INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER
  3979.     SI = 8004h
  3980. Return: AX = offset of note buffer (segment = segment of internal DMA buffer)
  3981.     DX = size of buffer in note structures
  3982. SeeAlso: SI=8000h
  3983. --------s-94----SI8005-----------------------
  3984. INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE
  3985.     SI = 8005h
  3986. Return: ???
  3987. --------s-94----SI8011-----------------------
  3988. INT 94 u - Media Vision PCM.COM - INITIALIZE
  3989.     SI = 8011h
  3990.     ES:BX -> "iobf91" structure
  3991. Return: ???
  3992. --------s-94----SI8012-----------------------
  3993. INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD
  3994.     SI = 8012h
  3995.     ES:BX -> "i94f92buf" structure
  3996. Return: ???
  3997. SeeAlso: SI=8013h,SI=8014h
  3998. --------s-94----SI8013-----------------------
  3999. INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE
  4000.     SI = 8013h
  4001. Return: AX = number of sounds used
  4002.     DX = maximum handles
  4003. --------s-94----SI8014-----------------------
  4004. INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND
  4005.     SI = 8014h
  4006.     ES:BX -> "i94f92buf" structure to be filled in
  4007.         sound number field set to desired sound
  4008. Return: AX = status
  4009.         0000h successful
  4010.         FFFFh sound number out of range
  4011. SeeAlso: SI=8012h,SI=8013h
  4012. --------s-94----SI8015-----------------------
  4013. INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER
  4014.     SI = 8015h
  4015.     ES:BX -> DMA info structure (see #2585)
  4016. Return: ???
  4017.  
  4018. Format of PCM.COM DMA info structure:
  4019. Offset    Size    Description    (Table 2585)
  4020.  00h    DWORD    -> DMA buffer (offset FFFFh = return current buffer info)
  4021.  04h    WORD    DMA buffer size
  4022.  06h    WORD    divisions
  4023. --------s-94----SI8016-----------------------
  4024. INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY
  4025.     SI = 8016h
  4026.     AX = hotkey number (01h-08h)
  4027. Return: ???
  4028. SeeAlso: AL=02h/SI=8017h
  4029. --------s-94--01SI8017-----------------------
  4030. INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT
  4031.     AL = 01h
  4032.     SI = 8017h
  4033.     AH = new state (00h off, 01h on)
  4034. Return: ???
  4035. SeeAlso: AL=02h/SI=8017h
  4036. --------s-94--02SI8017-----------------------
  4037. INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE
  4038.     AL = 02h
  4039.     SI = 8017h
  4040.     AH = new state (00h off, 01h on)
  4041. Return: ???
  4042. --------s-94--04SI8017-----------------------
  4043. INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE
  4044.     AL = 04h
  4045.     SI = 8017h
  4046.     AH = new state
  4047.         00h off
  4048.         01h on
  4049.         CX = minimum delay
  4050.         DX = maximum delay
  4051. Return: ???
  4052. --------s-94--08SI8017-----------------------
  4053. INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE
  4054.     AL = 08h
  4055.     SI = 8017h
  4056.     AH = new state
  4057.         00h off
  4058.         01h on
  4059.         DX:CX = delay
  4060. Return: ???
  4061. SeeAlso: AL=10h/SI=8017h
  4062. --------s-94--10SI8017-----------------------
  4063. INT 94 u - Media Vision PCM.COM - TIMER CONTROL
  4064.     AL = 10h
  4065.     SI = 8017h
  4066.     AH = timer options (see #2586)
  4067.     DX:CX = delay if AH bit 7 set (one-shot if DX bit 15 set)
  4068. Return: ???
  4069. SeeAlso: AL=08h/SI=8017h
  4070.  
  4071. Bitfields for PCM.COM timer options:
  4072. Bit(s)    Description    (Table 2586)
  4073.  7    set timer
  4074.  6    timer active (timer turned off if clear)
  4075.  5-0    timer number
  4076. --------s-94----SI8018-----------------------
  4077. INT 94 u - Media Vision PCM.COM - GET INFO
  4078.     SI = 8018h
  4079.     AL = what to get
  4080.         00h "F92state"
  4081.         01h "F92bkgd"
  4082.         02h "I10timer"
  4083.         03h "I08state"
  4084. Return: DX:AX -> desired information
  4085. --------r-95---------------------------------
  4086. INT 95 - IBM ROM BASIC - used while in interpreter
  4087. Notes:    called by ROM BASIC
  4088.     BASIC.COM/BASICA.COM do not restore vector on termination
  4089. --------r-95---------------------------------
  4090. INT 95 - APL*PLUS/PC - DETERMINE R= SPACE
  4091. Note:    use only when the R= option is invoked on entering APL
  4092. --------r-96---------------------------------
  4093. INT 96 - IBM ROM BASIC - used while in interpreter
  4094. Notes:    called by ROM BASIC
  4095.     BASIC.COM/BASICA.COM do not restore vector on termination
  4096. --------r-97---------------------------------
  4097. INT 97 - IBM ROM BASIC - used while in interpreter
  4098. Notes:    called by ROM BASIC
  4099.     BASIC.COM/BASICA.COM do not restore vector on termination
  4100. --------r-98---------------------------------
  4101. INT 98 - IBM ROM BASIC - used while in interpreter
  4102. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4103.     BASIC.COM/BASICA.COM do not restore vector on termination
  4104. --------r-99---------------------------------
  4105. INT 99 - IBM ROM BASIC - used while in interpreter
  4106. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4107.     BASIC.COM/BASICA.COM do not restore vector on termination
  4108. --------r-9A---------------------------------
  4109. INT 9A - IBM ROM BASIC - used while in interpreter
  4110. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4111.     BASIC.COM/BASICA.COM do not restore vector on termination
  4112. SeeAlso: INT 80"BASIC",INT 99,INT 9B
  4113. --------r-9B---------------------------------
  4114. INT 9B - IBM ROM BASIC - used while in interpreter
  4115. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4116.     BASIC.COM/BASICA.COM do not restore vector on termination
  4117. SeeAlso: INT 80"BASIC",INT 9A,INT 9C"BASIC"
  4118. --------r-9C---------------------------------
  4119. INT 9C - IBM ROM BASIC - used while in interpreter
  4120. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4121.     BASIC.COM/BASICA.COM do not restore vector on termination
  4122. SeeAlso: INT 80"BASIC",INT 9B,INT 9D"BASIC"
  4123. --------v-9C---------------------------------
  4124. INT 9C - VIRUS - "INT13" - ORIGINAL INT 13h VECTOR
  4125. SeeAlso: INT 8B"VIRUS",INT 9D"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  4126. --------r-9D---------------------------------
  4127. INT 9D - IBM ROM BASIC - used while in interpreter
  4128. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4129.     BASIC.COM/BASICA.COM do not restore vector on termination
  4130. SeeAlso: INT 80"BASIC",INT 9C"BASIC",INT 9E"BASIC"
  4131. --------v-9D---------------------------------
  4132. INT 9D - VIRUS - "INT13" - ROM INT 13h ENTRY POINT
  4133. Note:    this vector is used by the virus to store the result of a call to
  4134.       INT 2F/AH=13h
  4135. SeeAlso: INT 2F/AH=13h,INT 9C"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  4136. --------r-9E---------------------------------
  4137. INT 9E - IBM ROM BASIC - used while in interpreter
  4138. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4139.     BASIC.COM/BASICA.COM do not restore vector on termination
  4140. SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT 9F"BASIC"
  4141. --------v-9E---------------------------------
  4142. INT 9E - VIRUS - "INT13" - ORIGINAL INT 21h VECTOR
  4143. SeeAlso: INT 70"VIRUS",INT 9C"VIRUS",INT 9D"VIRUS",INT E0"VIRUS"
  4144. --------r-9F---------------------------------
  4145. INT 9F - IBM ROM BASIC - used while in interpreter
  4146. Notes:    called by ROM BASIC
  4147.     BASIC.COM/BASICA.COM do not restore vector on termination
  4148. SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT A0"BASIC"
  4149. --------v-9F---------------------------------
  4150. INT 9F - VIRUS - "INT13" - STORAGE FOR USER INT 13h VECTOR
  4151. Note:    while it is infecting a file, the INT13 virus grabs INT 13 and uses
  4152.       this interrupt to store the existing INT 13 vector for later
  4153.       restoration
  4154. SeeAlso: INT 9C"VIRUS",INT 9D"VIRUS",INT D3"VIRUS"
  4155. --------r-A0---------------------------------
  4156. INT A0 - IBM ROM BASIC - used while in interpreter
  4157. Notes:    called by ROM BASIC
  4158.     BASIC.COM/BASICA.COM do not restore vector on termination
  4159. SeeAlso: INT 80"BASIC",INT 9F"BASIC",INT A1"BASIC"
  4160. --------r-A0---------------------------------
  4161. INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE
  4162. SeeAlso: INT 59
  4163. --------r-A1---------------------------------
  4164. INT A1 - IBM ROM BASIC - used while in interpreter
  4165. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4166.     BASIC.COM/BASICA.COM do not restore vector on termination
  4167. SeeAlso: INT 80"BASIC",INT A0"BASIC",INT A2"BASIC"
  4168. --------r-A2---------------------------------
  4169. INT A2 - IBM ROM BASIC - used while in interpreter
  4170. Notes:    called by ROM BASIC
  4171.     BASIC.COM/BASICA.COM do not restore vector on termination
  4172. SeeAlso: INT 80"BASIC",INT A1"BASIC",INT A3"BASIC"
  4173. --------r-A3---------------------------------
  4174. INT A3 - IBM ROM BASIC - used while in interpreter
  4175. Notes:    called by ROM BASIC
  4176.     BASIC.COM/BASICA.COM do not restore vector on termination
  4177. SeeAlso: INT 80"BASIC",INT A2"BASIC",INT A4"BASIC"
  4178. --------r-A4---------------------------------
  4179. INT A4 - IBM ROM BASIC - used while in interpreter
  4180. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4181.     BASIC.COM/BASICA.COM do not restore vector on termination
  4182. SeeAlso: INT 80"BASIC",INT A3"BASIC",INT A5"BASIC"
  4183. --------U-A4---------------------------------
  4184. INT A4 U - Right Hand Man - API
  4185.     AH = function number (v3.3 supports functions 00h-52h)
  4186. Return: CF set on error
  4187.     CF clear if successful
  4188. Program: Right Hand Man is a TSR desk-top utility originally by Red E Products
  4189.       which has evolved into Futurus Team
  4190. Note:    this interrupt is only hooked while popped up
  4191. SeeAlso: INT 2F/AX=A4E0h
  4192. --------r-A5---------------------------------
  4193. INT A5 - IBM ROM BASIC - used while in interpreter
  4194. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4195.     BASIC.COM/BASICA.COM do not restore vector on termination
  4196. SeeAlso: INT 80"BASIC",INT A4"BASIC",INT A6"BASIC"
  4197. --------r-A6---------------------------------
  4198. INT A6 - IBM ROM BASIC - used while in interpreter
  4199. Notes:    called by ROM BASIC
  4200.     BASIC.COM/BASICA.COM do not restore vector on termination
  4201. SeeAlso: INT 80"BASIC",INT A5"BASIC",INT A7"BASIC"
  4202. --------r-A7---------------------------------
  4203. INT A7 - IBM ROM BASIC - used while in interpreter
  4204. Notes:    called by ROM BASIC
  4205.     BASIC.COM/BASICA.COM do not restore vector on termination
  4206. --------r-A8---------------------------------
  4207. INT A8 - IBM ROM BASIC - used while in interpreter
  4208. Notes:    called by ROM BASIC
  4209.     BASIC.COM/BASICA.COM do not restore vector on termination
  4210. --------r-A9---------------------------------
  4211. INT A9 - IBM ROM BASIC - used while in interpreter
  4212. Notes:    called by ROM BASIC
  4213.     BASIC.COM/BASICA.COM do not restore vector on termination
  4214. --------r-AA---------------------------------
  4215. INT AA - IBM ROM BASIC - used while in interpreter
  4216. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4217.     BASIC.COM/BASICA.COM do not restore vector on termination
  4218. --------r-AB---------------------------------
  4219. INT AB - IBM ROM BASIC - used while in interpreter
  4220. Notes:    called by ROM BASIC
  4221.     BASIC.COM/BASICA.COM do not restore vector on termination
  4222. --------r-AC---------------------------------
  4223. INT AC - IBM ROM BASIC - used while in interpreter
  4224. Notes:    called by ROM BASIC
  4225.     BASIC.COM/BASICA.COM do not restore vector on termination
  4226. --------r-AD---------------------------------
  4227. INT AD - IBM ROM BASIC - used while in interpreter
  4228. Notes:    called by ROM BASIC
  4229.     BASIC.COM/BASICA.COM do not restore vector on termination
  4230. --------r-AE---------------------------------
  4231. INT AE - IBM ROM BASIC - used while in interpreter
  4232. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4233.     BASIC.COM/BASICA.COM do not restore vector on termination
  4234. --------r-AF---------------------------------
  4235. INT AF - IBM ROM BASIC - used while in interpreter
  4236. Notes:    called by ROM BASIC
  4237.     BASIC.COM/BASICA.COM do not restore vector on termination
  4238. --------r-B0---------------------------------
  4239. INT B0 - IBM ROM BASIC - used while in interpreter
  4240. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4241.     BASIC.COM/BASICA.COM do not restore vector on termination
  4242. --------r-B1---------------------------------
  4243. INT B1 - IBM ROM BASIC - used while in interpreter
  4244. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4245.     BASIC.COM/BASICA.COM do not restore vector on termination
  4246. --------r-B2---------------------------------
  4247. INT B2 - IBM ROM BASIC - used while in interpreter
  4248. Notes:    called by ROM BASIC
  4249.     BASIC.COM/BASICA.COM do not restore vector on termination
  4250. --------r-B3---------------------------------
  4251. INT B3 - IBM ROM BASIC - used while in interpreter
  4252. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4253.     BASIC.COM/BASICA.COM do not restore vector on termination
  4254. --------U-B370-------------------------------
  4255. INT B3 - ZIPKEY - GET VERSION
  4256.     AH = 70h
  4257. Return: AH = major version
  4258.     AL = minor version
  4259.     CL = number of states and territories in current database
  4260.     DH = year of current database - 1900
  4261.     DL = month of current database's file date
  4262. Program: ZIPKEY is a resident ZIPCODE database by Eric Isaacson
  4263. Note:    if installed, the string "ZIPKEY" is present at offset 75h in the
  4264.       interrupt handler's segment, and the byte at 7Bh contains the API
  4265.       version number (00h for v1.x, 01h for v2.0)
  4266. --------U-B371-------------------------------
  4267. INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE
  4268.     AH = 71h
  4269.     BX = abbreviation, in either case (first letter in BL)
  4270. Return: CF set on error
  4271.         AL = FFh
  4272.     CF clear if successful
  4273.         AL = ZIPKEY state code
  4274. SeeAlso: AH=72h
  4275. --------U-B372-------------------------------
  4276. INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION
  4277.     AH = 72h
  4278.     BL = ZIPKEY state code
  4279. Return: CF set on error
  4280.         AX destroyed
  4281.     CF clear if successful
  4282.         AX = abbreviation, in upper case
  4283. SeeAlso: AH=71h,AH=73h
  4284. --------U-B373-------------------------------
  4285. INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME
  4286.     AH = 73h
  4287.     BL = ZIPKEY state code
  4288.     ES:DI -> buffer for name
  4289. Return: CF set on error
  4290.         AX destroyed
  4291.     CF clear if successful
  4292.         ES:DI points one byte beyond end of name
  4293. SeeAlso: AH=72h
  4294. --------U-B374-------------------------------
  4295. INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS
  4296.     AH = 74h
  4297.     DX = zipcode region (0-999)
  4298.     CH = last two digits of zipcode (0-99)
  4299.     ES:DI -> buffer
  4300. Return: CF set on error
  4301.         AX destroyed
  4302.     CF clear if successful
  4303.         ES:DI points one byte beyond end of digit string
  4304. --------U-B375-------------------------------
  4305. INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE
  4306.     AH = 75h
  4307.     DX = zipcode region (0-999)
  4308.     CH = last two digits of zipcode (0-99)
  4309. Return: CF set on error (zipcode not found)
  4310.         AL = suggested state code, FFh if none
  4311.     CF clear if successful
  4312.         AL = ZIPKEY state code
  4313.         BX = area code (v2.0+)
  4314. SeeAlso: AH=76h,AH=79h
  4315. --------U-B376-------------------------------
  4316. INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE
  4317.     AH = 76h
  4318.     DX = zipcode region (0-999)
  4319.     CH = last two digits of zipcode (0-99)
  4320.     ES:DI -> buffer for name
  4321. Return: CF set on error
  4322.         AL = suggested state code, FFh if none
  4323.         ES:DI buffer filled with suggested city name
  4324.     CF clear if successful
  4325.         AL = ZIPKEY state code
  4326.         BX = area code (v2.0+)
  4327.         ES:DI points one byte beyond end of name
  4328. SeeAlso: AH=75h,AH=78h,AH=7Eh
  4329. --------U-B377-------------------------------
  4330. INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE
  4331.     AH = 77h
  4332.     DX = zipcode region (0-999)
  4333.     CH = last two digits of zipcode (0-99)
  4334.     BX = 16-bit BIOS keycode for a defined ZIPKEY alternate exit key
  4335. Return: CF set on error
  4336.         AX destroyed
  4337.     CF clear if successful
  4338.         zipcode specification as defined by the BX keystroke is placed in
  4339.           keyboard buffer, as if the user had popped up ZIPKEY and exited
  4340.           by pressing the key specified by BX
  4341. --------U-B378-------------------------------
  4342. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY
  4343.     AH = 78h
  4344.     BL = ZIPKEY state code
  4345.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  4346. Return: BH = number of matching entries (set to 51 if more than 50)
  4347.     DX = zipcode region of first match (0-999)
  4348.     CL = last two digits of first zipcode in the range (0-99)
  4349.     CH = last two digits of last zipcode in the range (0-99)
  4350.     AX destroyed
  4351. SeeAlso: AH=79h,AH=7Ah
  4352. --------U-B379-------------------------------
  4353. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY
  4354.     AH = 79h
  4355.     BL = ZIPKEY state code of first state to search
  4356.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  4357. Return: AL = ZIPKEY state code of first matching state
  4358.     BH = number of matching entries (set to 51 if more than 50)
  4359.     DX = zipcode region of first match (0-999)
  4360.     CL = last two digits of first zipcode in first range (0-99)
  4361.     CH = last two digits of last zipcode in first range (0-99)
  4362. Note:    to find all matching cities, repeat search with BL set to one more than
  4363.       the returned AL
  4364. SeeAlso: AH=78h,AH=7Ah
  4365. --------U-B37A-------------------------------
  4366. INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP
  4367.     AH = 7Ah
  4368.     BL = case number (0 to one less than value returned in BH by lookup)
  4369. Return: AL = ZIPKEY state code
  4370.     DX = zipcode region (0-999)
  4371.     CL = last two digits of first zipcode in the range (0-99)
  4372.     CH = last two digits of last zipcode in the range (0-99)
  4373. SeeAlso: AH=78h,AH=79h
  4374. --------U-B37B-------------------------------
  4375. INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT
  4376.     AH = 7Bh
  4377. Return: BL = maximum number of characters for a city name
  4378.     BH = ZIPKEY state code for last city-name search, or FFh if none
  4379.     CX:DX = internal code identifying last city search
  4380.     AX destroyed
  4381. SeeAlso: AH=7Ch
  4382. --------U-B37C-------------------------------
  4383. INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT
  4384.     AH = 7Ch
  4385.     BL = maximum number of characters for a city name
  4386.     BH = ZIPKEY state code for last city-name search, or FFh if none
  4387.     CX:DX = internal code returned by AH=7Bh
  4388. Return: CF set on error
  4389.     CF clear if successful
  4390.     AX destroyed
  4391. SeeAlso: AH=7Bh
  4392. --------U-B37D-------------------------------
  4393. INT B3 - ZIPKEY - REQUEST POP UP
  4394.     AH = 7Dh
  4395.     BL = index number to simulate pressing a hotkey
  4396.         FFh for immediate popup with no playback on return
  4397. Return: CF set on error
  4398.         AL = error code
  4399.         FDh already busy with another request
  4400.         FEh illegal function
  4401.     CF clear if successful
  4402.         AX destroyed
  4403.         window popped up and was closed by the user
  4404. SeeAlso: AH=70h
  4405. --------U-B37E-------------------------------
  4406. INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION
  4407.     AH = 7Eh
  4408.     DX = zipcode region (0-999)
  4409.     ES:DI -> buffer for name
  4410. Return: CF set on error
  4411.         AL = FFh region does not exist
  4412.     CF clear if successful
  4413.         AL = ZIPKEY state code
  4414.         ES:DI points one byte beyond end of name
  4415. SeeAlso: AH=76h
  4416. --------U-B37F-------------------------------
  4417. INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS
  4418.     AH = 7Fh
  4419.     BL = function
  4420.         00h turn off hotkeys
  4421.         01h turn on hotkeys
  4422.         02h return hotkey status
  4423.         03h toggle hotkey status
  4424. Return: AL = hotkey status
  4425.         00h off
  4426.         01h on
  4427. --------U-B380-------------------------------
  4428. INT B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE
  4429.     AH = 80h
  4430.     BX = telephone area code (decimal)
  4431. Return: CF clear if successful
  4432.         AL = ZIPKEY state code
  4433.         DX = first ZIP region for state (03E8h if Canada)
  4434.         CX = number of ZIP regions in state
  4435.     CF set on error
  4436.         AL = FFh
  4437.         DX = 03E9h
  4438. --------r-B4---------------------------------
  4439. INT B4 - IBM ROM BASIC - used while in interpreter
  4440. Notes:    called by ROM BASIC
  4441.     BASIC.COM/BASICA.COM do not restore vector on termination
  4442. --------r-B4---------------------------------
  4443. INT B4 - StackMan - REQUEST NEW STACK
  4444. Return: SS:SP -> new stack
  4445. Program: StackMan is a freeware stack manager by Franz Veldman of ESaSS B.V.
  4446.       which functions as a replacement for the DOS STACK= command as well
  4447.       as permitting multiple TSRs to share a pool of stack space
  4448. Note:    the installation check consists of testing for the string "STACKXXX" at
  4449.       offset 0Ah from the interrupt handler
  4450. SeeAlso: INT 2F/AX=C9FFh,INT B5"STACKMAN"
  4451. Index:    installation check;STACKMAN
  4452. --------r-B5---------------------------------
  4453. INT B5 - IBM ROM BASIC - used while in interpreter
  4454. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4455.     BASIC.COM/BASICA.COM do not restore vector on termination
  4456. SeeAlso: INT 80"BASIC",INT B4"BASIC",INT B6"BASIC"
  4457. --------r-B5---------------------------------
  4458. INT B5 - StackMan - RESTORE ORIGINAL STACK
  4459.     SS:SP -> stack returned by INT B4
  4460. Return: SS:SP restored to value before INT B4
  4461. SeeAlso: INT 2F/AX=C9FFh,INT B4"StackMan"
  4462. --------m-B5---------------------------------
  4463. INT B5 U - Netroom NETSWAP4 - ???
  4464.     ???
  4465. Return: ???
  4466. SeeAlso: INT 31/AH=57h
  4467. --------r-B6---------------------------------
  4468. INT B6 - IBM ROM BASIC - used while in interpreter
  4469. Notes:    called by ROM BASIC
  4470.     BASIC.COM/BASICA.COM do not restore vector on termination
  4471. SeeAlso: INT 80"BASIC",INT B5"BASIC",INT B7"BASIC"
  4472. --------y-B6---------------------------------
  4473. INT B6 - (NOT A VECTOR!) - USED BY TBFENCE
  4474. Program: TBFence is a security program by ESaSS B.V. which transparently
  4475.       encrypts floppies and optionally allows only encrypted diskettes to
  4476.       be accessed
  4477. Note:    the low word of this vector (0000h:02D8h) contains the segment of the
  4478.       TBFence INT 13h code, which starts with the signature word E487h;
  4479.       this forms the installation check
  4480.     the highest byte of this vector contains the start of a FAR JMP
  4481.       instruction to ???
  4482. SeeAlso: INT B7"TBFENCE"
  4483. Index:    installation check;TBFence
  4484. --------r-B7---------------------------------
  4485. INT B7 - IBM ROM BASIC - used while in interpreter
  4486. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4487.     BASIC.COM/BASICA.COM do not restore vector on termination
  4488. SeeAlso: INT 80"BASIC",INT B6"BASIC",INT B8"BASIC"
  4489. --------y-B7---------------------------------
  4490. INT B7 - TBFENCE - ???
  4491. SeeAlso: INT B6"TBFENCE"
  4492. --------r-B8---------------------------------
  4493. INT B8 - IBM ROM BASIC - used while in interpreter
  4494. Notes:    called by ROM BASIC
  4495.     BASIC.COM/BASICA.COM do not restore vector on termination
  4496. SeeAlso: INT 80"BASIC",INT B7"BASIC",INT B9"BASIC"
  4497. --------r-B9---------------------------------
  4498. INT B9 - IBM ROM BASIC - used while in interpreter
  4499. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4500.     BASIC.COM/BASICA.COM do not restore vector on termination
  4501. --------r-BA---------------------------------
  4502. INT BA - IBM ROM BASIC - used while in interpreter
  4503. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4504.     BASIC.COM/BASICA.COM do not restore vector on termination
  4505. --------r-BB---------------------------------
  4506. INT BB - IBM ROM BASIC - used while in interpreter
  4507. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4508.     BASIC.COM/BASICA.COM do not restore vector on termination
  4509. --------r-BC---------------------------------
  4510. INT BC - IBM ROM BASIC - used while in interpreter
  4511. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4512.     BASIC.COM/BASICA.COM do not restore vector on termination
  4513. --------r-BD---------------------------------
  4514. INT BD - IBM ROM BASIC - used while in interpreter
  4515. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4516.     BASIC.COM/BASICA.COM do not restore vector on termination
  4517. --------r-BE---------------------------------
  4518. INT BE - IBM ROM BASIC - used while in interpreter
  4519. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4520.     BASIC.COM/BASICA.COM do not restore vector on termination
  4521. SeeAlso: INT 80"BASIC",INT BD"BASIC",INT BF"BASIC"
  4522. --------Q-BE---------------------------------
  4523. INT BE - DESQview/X - ???
  4524. Note:    points at an IRET
  4525. SeeAlso: INT 15/AX=BFDEh/BX=0006h,INT 63"DESQview"
  4526. --------r-BF---------------------------------
  4527. INT BF - IBM ROM BASIC - used while in interpreter
  4528. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4529.     BASIC.COM/BASICA.COM do not restore vector on termination
  4530. SeeAlso: INT 80"BASIC",INT BE"BASIC",INT C0"BASIC"
  4531. --------r-C0---------------------------------
  4532. INT C0 - IBM ROM BASIC - used while in interpreter
  4533. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4534.     BASIC.COM/BASICA.COM do not restore vector on termination
  4535. SeeAlso: INT 80"BASIC",INT BF"BASIC",INT C1"BASIC"
  4536. --------d-C0---------------------------------
  4537. INT C0 - AMI BIOS - DRIVE 0 DATA
  4538. Note:    this vector is used by some AMI BIOSes to store the first four bytes
  4539.       of the hard disk parameter table
  4540. SeeAlso: INT 41,INT 60"Adaptec",INT C1"AMI",INT C2"AMI",INT C3"AMI",INT C4"AMI"
  4541. --------r-C1---------------------------------
  4542. INT C1 - IBM ROM BASIC - used while in interpreter
  4543. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4544.     BASIC.COM/BASICA.COM do not restore vector on termination
  4545. SeeAlso: INT 80"BASIC",INT C0"BASIC",INT C2"BASIC"
  4546. --------d-C1---------------------------------
  4547. INT C1 - AMI BIOS - DRIVE 0 DATA
  4548. Note:    this vector is used by some AMI BIOSes to store the second four bytes
  4549.       of the hard disk parameter table
  4550. SeeAlso: INT 41,INT 60"Adaptec",INT C0"AMI",INT C2"AMI",INT C3"AMI"
  4551. --------r-C2---------------------------------
  4552. INT C2 - IBM ROM BASIC - used while in interpreter
  4553. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4554.     BASIC.COM/BASICA.COM do not restore vector on termination
  4555. SeeAlso: INT 80"BASIC",INT C1"BASIC",INT C3"BASIC"
  4556. --------d-C2---------------------------------
  4557. INT C2 - AMI BIOS - DRIVE 0 DATA
  4558. Note:    this vector is used by some AMI BIOSes to store the third four bytes
  4559.       of the hard disk parameter table
  4560. SeeAlso: INT 41,INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C3"AMI"
  4561. --------r-C3---------------------------------
  4562. INT C3 - IBM ROM BASIC - used while in interpreter
  4563. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4564.     BASIC.COM/BASICA.COM do not restore vector on termination
  4565. SeeAlso: INT 80"BASIC",INT C2"BASIC",INT C4"BASIC"
  4566. --------d-C3---------------------------------
  4567. INT C3 - AMI BIOS - DRIVE 0 DATA
  4568. Note:    this vector is used by some AMI BIOSes to store the final four bytes
  4569.       of the hard disk parameter table
  4570. SeeAlso: INT 41,INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C2"AMI"
  4571. --------r-C4---------------------------------
  4572. INT C4 - IBM ROM BASIC - used while in interpreter
  4573. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4574.     BASIC.COM/BASICA.COM do not restore vector on termination
  4575. SeeAlso: INT 80"BASIC",INT C3"BASIC",INT C5"BASIC"
  4576. --------d-C4---------------------------------
  4577. INT C4 - AMI BIOS - DRIVE 1 DATA
  4578. Note:    this vector is used by some AMI BIOSes to store the first four bytes
  4579.       of the second hard disk's parameter table
  4580. SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C5"AMI",INT C6"AMI",INT C7"AMI"
  4581. --------r-C5---------------------------------
  4582. INT C5 - IBM ROM BASIC - used while in interpreter
  4583. Notes:    called by ROM BASIC
  4584.     BASIC.COM/BASICA.COM do not restore vector on termination
  4585. SeeAlso: INT 80"BASIC",INT C4"BASIC",INT C6"BASIC"
  4586. --------d-C5---------------------------------
  4587. INT C5 - AMI BIOS - DRIVE 1 DATA
  4588. Note:    this vector is used by some AMI BIOSes to store the second four bytes
  4589.       of the second hard disk's parameter table
  4590. SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C4"AMI",INT C6"AMI",INT C7"AMI"
  4591. --------r-C6---------------------------------
  4592. INT C6 - IBM ROM BASIC - used while in interpreter
  4593. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4594.     BASIC.COM/BASICA.COM do not restore vector on termination
  4595. SeeAlso: INT 80"BASIC",INT C5"BASIC",INT C7"BASIC"
  4596. --------r-C6---------------------------------
  4597. INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86
  4598. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4599.       the older interrupts
  4600. SeeAlso: INT 86"APL"
  4601. --------d-C6---------------------------------
  4602. INT C6 - AMI BIOS - DRIVE 1 DATA
  4603. Note:    this vector is used by some AMI BIOSes to store the third four bytes
  4604.       of the second hard disk's parameter table
  4605. SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C4"AMI",INT C5"AMI",INT C7"AMI"
  4606. --------r-C7---------------------------------
  4607. INT C7 - IBM ROM BASIC - used while in interpreter
  4608. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4609.     BASIC.COM/BASICA.COM do not restore vector on termination
  4610. SeeAlso: INT 80"BASIC",INT C6"BASIC",INT C8"BASIC"
  4611. --------r-C7---------------------------------
  4612. INT C7 - APL*PLUS/PC - ???
  4613. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4614.       the older interrupts
  4615. SeeAlso: INT 87"APL"
  4616. --------d-C7---------------------------------
  4617. INT C7 - AMI BIOS - DRIVE 1 DATA
  4618. Note:    this vector is used by some AMI BIOSes to store the final four bytes
  4619.       of the second hard disk's parameter table
  4620. SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C4"AMI",INT C5"AMI",INT C6"AMI"
  4621. --------r-C8---------------------------------
  4622. INT C8 - IBM ROM BASIC - used while in interpreter
  4623. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4624.     BASIC.COM/BASICA.COM do not restore vector on termination
  4625. SeeAlso: INT 80"BASIC",INT C7"BASIC",INT C9"BASIC"
  4626. --------r-C8---------------------------------
  4627. INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88
  4628. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4629.       the older interrupts
  4630. SeeAlso: INT 88"APL"
  4631. --------r-C9---------------------------------
  4632. INT C9 - IBM ROM BASIC - used while in interpreter
  4633. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4634.     BASIC.COM/BASICA.COM do not restore vector on termination
  4635. SeeAlso: INT 80"BASIC",INT C8"BASIC",INT CA"BASIC"
  4636. --------r-C9---------------------------------
  4637. INT C9 - APL*PLUS/PC - ???
  4638. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4639.       the older interrupts
  4640. SeeAlso: INT 89"APL"
  4641. --------r-CA---------------------------------
  4642. INT CA - IBM ROM BASIC - used while in interpreter
  4643. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4644.     BASIC.COM/BASICA.COM do not restore vector on termination
  4645. SeeAlso: INT 80"BASIC",INT C9"BASIC",INT CB"BASIC"
  4646. --------r-CA---------------------------------
  4647. INT CA - APL*PLUS/PC - PRINT SCREEN
  4648. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4649.       the older interrupts
  4650. SeeAlso: INT 8A"APL"
  4651. --------r-CB---------------------------------
  4652. INT CB - IBM ROM BASIC - used while in interpreter
  4653. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4654.     BASIC.COM/BASICA.COM do not restore vector on termination
  4655. SeeAlso: INT 80"BASIC",INT CA"BASIC",INT CC"BASIC"
  4656. --------r-CB---------------------------------
  4657. INT CB - APL*PLUS/PC - BEEP
  4658. Notes:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4659.       the older interrupts
  4660.     same as printing a ^G via INT 21/AH=02h
  4661. SeeAlso: INT 8B"APL"
  4662. --------r-CC---------------------------------
  4663. INT CC - IBM ROM BASIC - used while in interpreter
  4664. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4665.     BASIC.COM/BASICA.COM do not restore vector on termination
  4666. SeeAlso: INT 80"BASIC",INT CB"BASIC",INT CD"BASIC"
  4667. --------r-CC---------------------------------
  4668. INT CC - APL*PLUS/PC - CLEAR SCREEN MEMORY
  4669.     AX = flag
  4670.         0000h do not save display attributes
  4671.         0001h save attributes
  4672. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4673.       the older interrupts
  4674. SeeAlso: INT 8C"APL"
  4675. --------r-CD---------------------------------
  4676. INT CD - IBM ROM BASIC - used while in interpreter
  4677. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4678.     BASIC.COM/BASICA.COM do not restore vector on termination
  4679. SeeAlso: INT 80"BASIC",INT CC"BASIC",INT CE"BASIC"
  4680. --------r-CD---------------------------------
  4681. INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  4682. --------r-CE---------------------------------
  4683. INT CE - IBM ROM BASIC - used while in interpreter
  4684. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4685.     BASIC.COM/BASICA.COM do not restore vector on termination
  4686. SeeAlso: INT 80"BASIC",INT CD"BASIC",INT CF"BASIC"
  4687. --------r-CE---------------------------------
  4688. INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  4689. --------r-CF---------------------------------
  4690. INT CF - IBM ROM BASIC - used while in interpreter
  4691. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4692.     BASIC.COM/BASICA.COM do not restore vector on termination
  4693. SeeAlso: INT 80"BASIC",INT CE"BASIC",INT D0"BASIC"
  4694. --------r-CF---------------------------------
  4695. INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION
  4696. SeeAlso: INT E0"APL"
  4697. --------r-D0---------------------------------
  4698. INT D0 - IBM ROM BASIC - used while in interpreter
  4699. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4700.     BASIC.COM/BASICA.COM do not restore vector on termination
  4701. SeeAlso: INT 80"BASIC",INT CF"BASIC",INT D1"BASIC"
  4702. --------r-D0---------------------------------
  4703. INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  4704. --------U-D0---------------------------------
  4705. INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR
  4706. Program: NJFRERAM is a resident free-memory display utility by Mike "Nifty
  4707.       James" Blaszczak
  4708. Note:    if NJFRERAM is installed, this vector points at the signature "NJ"
  4709. Index:    installation check;NJFRERAM
  4710. --------r-D1---------------------------------
  4711. INT D1 - IBM ROM BASIC - used while in interpreter
  4712. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4713.     BASIC.COM/BASICA.COM do not restore vector on termination
  4714. SeeAlso: INT 80"BASIC",INT D0"BASIC",INT D2"BASIC"
  4715. --------r-D1---------------------------------
  4716. INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  4717. --------r-D2---------------------------------
  4718. INT D2 - IBM ROM BASIC - used while in interpreter
  4719. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4720.     BASIC.COM/BASICA.COM do not restore vector on termination
  4721. SeeAlso: INT 80"BASIC",INT D1"BASIC",INT D3"BASIC"
  4722. --------r-D2---------------------------------
  4723. INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  4724. --------r-D3---------------------------------
  4725. INT D3 - IBM ROM BASIC - used while in interpreter
  4726. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4727.     BASIC.COM/BASICA.COM do not restore vector on termination
  4728. SeeAlso: INT 80"BASIC",INT D2"BASIC",INT D4"BASIC"
  4729. --------r-D3---------------------------------
  4730. INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  4731. --------v-D3---------------------------------
  4732. INT D3 - VIRUS - "Antiexe" - RELOCATED INT 13
  4733. SeeAlso: INT 9F"VIRUS"
  4734. --------r-D4---------------------------------
  4735. INT D4 - IBM ROM BASIC - used while in interpreter
  4736. Notes:    called by ROM BASIC
  4737.     BASIC.COM/BASICA.COM do not restore vector on termination
  4738. SeeAlso: INT 80"BASIC",INT D3"BASIC",INT D5"BASIC"
  4739. --------r-D4---------------------------------
  4740. INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  4741. --------O-D400-------------------------------
  4742. INT D4 O - PC-MOS/386 v5.01 - OBSOLETE FUNCTIONS
  4743.     AH = 00h and 01h
  4744. Return: nothing
  4745. Desc:    PC-MOS/386 v5.01 reports that these functions are no longer supported
  4746.       and enters an endless loop
  4747. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  4748.       system by The Software Link, Inc.
  4749. --------O-D402-------------------------------
  4750. INT D4 - PC-MOS/386 v3.0+ - GET SYSTEM CONTROL BLOCK POINTER
  4751.     AH = 02h
  4752. Return: AX = 0000h
  4753.     ES:BX -> System Control Block in V86 mode (see #2587)
  4754.     ES:EBX -> System Control Block in native mode (see #2587)
  4755. Note:    superseded by AH=26h
  4756. SeeAlso: AH=04h,AH=10h,AH=26h,AH=28h,AH=29h,AH=2Ah,INT 21/AX=3000h,INT 38
  4757.  
  4758. Format of PC-MOS/386 System Control Block:
  4759. Offset    Size    Description    (Table 2587)
  4760.  00h    WORD    pointer to first TCB in chain
  4761.  02h 17 BYTEs    reserved
  4762.  13h    WORD    pointer to current task's TCB
  4763.  15h    WORD    pointer to TCB of visible (console) task
  4764. --------O-D403-------------------------------
  4765. INT D4 - PC-MOS/386 v5.01 - GET/SET EXTENDED DIRECTORY INFORMATION
  4766.     AH = 03h
  4767.     AL = subfunction (00h get, 01h set)
  4768.     DS:(E)DX -> pathname
  4769.     ES:(E)BX -> 10-byte buffer for directory information (see #2588)
  4770. Return: CF clear if successful
  4771.         AL = permitted access level for file (00h-03h)
  4772.         ES:(E)BX -> modified buffer (AL=01h on entry)
  4773.     CF set on error
  4774.         AX = error code (see #0885 at INT 21/AH=59h)
  4775. Notes:    BX/DX are used in V86 mode, EBX/EDX in native mode
  4776.     the file class cannot be changed for files because it affects the
  4777.       encryption method, but directories can have their classes changed
  4778.  
  4779. Format of PC-MOS/386 directory information:
  4780. Offset    Size    Description    (Table 2588)
  4781.  00h    BYTE    reserved (0)
  4782.  01h    BYTE    file class ('A'-'Z' or 00h)
  4783.  02h    DWORD    user ID of file creator
  4784.  06h    WORD    file creation time (see #0876 at INT 21/AX=5700h)
  4785.  08h    WORD    file creation date (see #0877 at INT 21/AX=5700h)
  4786. --------O-D404-------------------------------
  4787. INT D4 - PC-MOS/386 v3.0+ - GET TASK CONTROL BLOCK
  4788.     AH = 04h
  4789.     BX = task ID or FFFFh for calling task
  4790. Return: CF clear if successful
  4791.         ES = segment of Task Control Block (TCB) (see #2589)
  4792.     CF set on error
  4793.         AX = error code (see #0885 at INT 21/AH=59h)
  4794. Note:    superseded by AH=27h
  4795. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah,INT 38
  4796.  
  4797. Format of PC-MOS/386 Task Control Block:
  4798. Offset    Size    Description    (Table 2589)
  4799.  00h    BYTE    signature byte "H" if allocated from system memory pool
  4800.  01h    BYTE    header block ID, "T" = TCB
  4801.  02h    WORD    length of block in paragraphs
  4802.  04h    WORD    segment address of next header block (0000h if last)
  4803.  06h    WORD    segment address of previous header block (0000h if first)
  4804.  08h    WORD    pointer to next TCB
  4805.  0Ah    WORD    pointer to previous TCB
  4806.  0Ch    WORD    pointer to associated TCB (if applicable)
  4807.  0Eh    WORD    reserved
  4808. ---TCB---
  4809.  10h    WORD    TCB task ID
  4810.  12h    WORD    native context save area
  4811.  14h    WORD    start address of task
  4812.  16h    WORD    end address of task
  4813.  18h    BYTE    task priority
  4814.  19h    BYTE    task time slice
  4815.  1Ah    BYTE    "TCBWAIT" run status of task
  4816.  1Bh    BYTE    "TCBSTAT" what the task is waiting for
  4817.  1Ch    DWORD    address of polling routine
  4818.  20h    BYTE    error code from last function call
  4819.  21h 11 BYTEs    name of currently executing task
  4820.  2Ch  4 BYTEs    ???
  4821.  30h    BYTE    keyboard disabled if bit 1 set
  4822.  31h    BYTE    current shift state and toggles
  4823.  32h  2 BYTEs    ???
  4824.  34h    BYTE    current video mode
  4825.  35h    BYTE    current video page
  4826.  36h    BYTE    number of text columns per screen
  4827.  37h    BYTE    number of text rows per screen
  4828.  38h    WORD    length of video buffer
  4829.  3Ah    WORD    video page length
  4830.  3Ch    WORD    apge start address in video RAM
  4831.  3Eh  4 WORDs    current cursor positions for four screen pages
  4832.  46h  8 BYTEs    ???
  4833.  4Eh    WORD    current cursor type
  4834.  50h    BYTE    current palette setting
  4835.  51h    BYTE    original video mode
  4836.  52h    BYTE    start CRT row (00h or 01h)
  4837.  53h    BYTE    video RAM in task active
  4838.  54h    WORD    handle of video save area
  4839.  56h    WORD    page count of video save area
  4840.  58h    WORD    segment address of video save area
  4841.  5Ah    WORD    poitner to first Task File Block (see #2592)
  4842.  5Ch    WORD    pointer to first Current Directory Block (see #2595)
  4843.  5Eh    WORD    pointer to active Current Directory Block (see #2595)
  4844.  60h    BYTE    number of drives
  4845.  61h    BYTE    current drive (0=A:, etc.)
  4846.  62h    DWORD    disk transfer address
  4847.  66h  4 BYTEs    ???
  4848.  6Ah    BYTE    verify flag (nonzero = on)
  4849.  6Bh    BYTE    break flag (nonzero = on)
  4850.  6Ch    WORD    share/lock retry count
  4851.  6Eh    WORD    ticks between share/lock retries
  4852.  70h    BYTE    remote printer flags (see #2590)
  4853.  71h    BYTE    ETX/ACK delay count
  4854.  72h    WORD    spooler segment address
  4855.  74h  2 BYTEs    ???
  4856.  76h  3 BYTEs    remote printer redirection for LPT1 through LPT3 (see #2591)
  4857.  79h  2 BYTEs    ???
  4858.  7Bh    DWORD    offset of username in TCB
  4859.  7Fh    BYTE    current output class
  4860.  80h  7 BYTEs    protection access rights, 2 bits per class (writeable!)
  4861.  87h 122 BYTEs    ???
  4862. 101h    BYTE    TCB sleep downcounter value
  4863. 102h 20 BYTEs    ???
  4864. 116h    BYTE    last scan code
  4865.     ...
  4866. 5D0h    DWORD    far pointer to Device Driver Terminal's entry point
  4867. 5D4h    WORD    offset of logical screen
  4868. 5D6h    WORD    segment of logical screen
  4869. 5D8h    WORD    cursor offset within page
  4870. 5DAh    BYTE    screen columns
  4871. 5DBh    WORD    async port number (0000h = none)
  4872. 5DDh    DWORD    physical baudrate
  4873. 5E1h 19 BYTEs    reserved for Device Driver Terminal (DDT)
  4874.     ...
  4875. 7A6h    DWORD    far pointer to unregister calling chain
  4876.  
  4877. Bitfields for PC-MOS/386 remote printer flags:
  4878. Bit(s)    Description    (Table 2590)
  4879.  0    LPT1 to terminal
  4880.  1    LPT2 to terminal
  4881.  2    LPT3 to terminal
  4882.  3    escape to printer pending
  4883.  4    use XON/XOFF
  4884.  5    use ETX/ACK
  4885.  6    waiting for ACK or XON
  4886.  7    transparent printing on
  4887.  
  4888. (Table 2591)
  4889. Values for PC-MOS/386 remote printer redirection:
  4890.  00h    not redirected
  4891.  01h    redirected to COM1
  4892.  ...
  4893.  18h    redirected to COM24
  4894.  51h    redirected to LPT1
  4895.  52h    redirected to LPT2
  4896.  53h    redirected to LPT3
  4897.  
  4898. Format of PC-MOS/386 Task File Block:
  4899. Offset    Size    Description    (Table 2592)
  4900.  00h    BYTE    signature byte "H" if allocated from system memory pool
  4901.  01h    BYTE    header block ID, "F" = task file block
  4902.  02h    WORD    length of block in paragraphs
  4903.  04h    WORD    segment address of next header block (0000h if last)
  4904.  06h    WORD    segment address of previous header block (0000h if first)
  4905.  08h    WORD    pointer to next TCB
  4906.  0Ah    WORD    pointer to previous TCB
  4907.  0Ch    WORD    pointer to associated TCB (if applicable)
  4908.  0Eh    WORD    reserved
  4909. ---TFB---
  4910.  10h    WORD    segment address of next TFB
  4911.  12h    WORD    segment address of previous TFB
  4912.  14h    WORD    segment address of TFB's Global File Block (see #2594)
  4913.  16h    WORD    segment address of owner's PSP
  4914.  18h    WORD    file handle
  4915.  1Ah  3 BYTEs    ???
  4916.  1Dh    DWORD    file position
  4917.  21h  4 BYTEs    ???
  4918.  25h    BYTE    IOCTL flags (see #2593)
  4919.  26h  2 BYTEs    ???
  4920.  
  4921. Bitfields for PC-MOS/386 IOCTL flags:
  4922. Bit(s)    Description    (Table 2593)
  4923.  0    stdin
  4924.  1    stdout
  4925.  2    null device
  4926.  3    clock device
  4927.  4    reserved
  4928.  5    ASCII mode instead of binary
  4929.  6    EOF encountered on input
  4930.  7    device rather than file
  4931.  
  4932. Format of PC-MOS/386 Global File Block:
  4933. Offset    Size    Description    (Table 2594)
  4934.  00h    BYTE    signature byte "H" if allocated from system memory pool
  4935.  01h    BYTE    header block ID, "G" = global file block
  4936.  02h    WORD    length of block in paragraphs
  4937.  04h    WORD    segment address of next header block (0000h if last)
  4938.  06h    WORD    segment address of previous header block (0000h if first)
  4939.  08h    WORD    pointer to next TCB
  4940.  0Ah    WORD    pointer to previous TCB
  4941.  0Ch    WORD    pointer to associated TCB (if applicable)
  4942.  0Eh    WORD    reserved
  4943. ---GFB---
  4944.  10h 10 BYTEs    ???
  4945.  1Ah    WORD    file attribute
  4946.  1Ch    BYTE    ???
  4947.  1Dh    DWORD    address of device driver
  4948.  21h    WORD    first cluster
  4949.  23h    WORD    time of last modification
  4950.  25h    WORD    date of last modification
  4951.  27h    DWORD    size of file in bytes
  4952.  2Bh 11 BYTEs    ???
  4953.  36h 11 BYTEs    device name or FCB-format filename
  4954.  41h    WORD    segment address of TFB list
  4955.  43h    WORD    segment address of first RLB (see #2597) (0000h = none)
  4956.  45h    BYTE    flag: nonzero if GFB refers to character device
  4957.  46h    WORD    address of Block Device Block (see #2596)
  4958.  48h    WORD    sector of file's directory entry
  4959.  4Ah    WORD    high word of file's directory entry
  4960.  4Ch    WORD    ofsset of directory entry within sector
  4961.  
  4962. Format of PC-MOS/386 Current Directory Block:
  4963. Offset    Size    Description    (Table 2595)
  4964.  00h    BYTE    signature byte "H" if allocated from system memory pool
  4965.  01h    BYTE    header block ID, "C" = current directory block
  4966.  02h    WORD    length of block in paragraphs
  4967.  04h    WORD    segment address of next header block (0000h if last)
  4968.  06h    WORD    segment address of previous header block (0000h if first)
  4969.  08h    WORD    pointer to next TCB
  4970.  0Ah    WORD    pointer to previous TCB
  4971.  0Ch    WORD    pointer to associated TCB (if applicable)
  4972.  0Eh    WORD    reserved
  4973. ---CDB---
  4974.  10h    BYTE    drive number
  4975.  11h    BYTE    ???
  4976.  12h 64 BYTEs    directory name
  4977.  52h    WORD    first directory cluster (0000h = root)
  4978.  
  4979. Format of PC-MOS/386 Block Device Block:
  4980. Offset    Size    Description    (Table 2596)
  4981.  00h    BYTE    signature byte "H" if allocated from system memory pool
  4982.  01h    BYTE    header block ID, "B" = block device block
  4983.  02h    WORD    length of block in paragraphs
  4984.  04h    WORD    segment address of next header block (0000h if last)
  4985.  06h    WORD    segment address of previous header block (0000h if first)
  4986.  08h    WORD    pointer to next TCB
  4987.  0Ah    WORD    pointer to previous TCB
  4988.  0Ch    WORD    pointer to associated TCB (if applicable)
  4989.  0Eh    WORD    reserved
  4990. ---BDB---
  4991.  10h    BYTE    logical drive
  4992.  11h    BYTE    unit passed to driver
  4993.  12h    WORD    sector size
  4994.  14h    BYTE    cluster mask
  4995.  15h    BYTE    cluster shift count
  4996.  16h    WORD    starting sector of first FAT
  4997.  18h    BYTE    number of FATs
  4998.  19h    WORD    number of root directories
  4999.  1Bh    WORD    sector number of first data sector (cluster 0002h)
  5000.  1Dh    WORD    number of clusters + 1 (number of highest data cluster)
  5001.  1Fh    BYTE    number of sectors in FAT
  5002.  20h    WORD    beginning root directory sector number
  5003.  22h    DWORD    device driver address
  5004.  26h    BYTE    media descriptor byte
  5005.  27h  5 BYTEs    ???
  5006.  2Ch    BYTE    flag: volume > 32MB
  5007.  2Dh    BYTE    ???
  5008.  2Eh    BYTE    number of sectors per cluster
  5009.  2Fh    WORD    number of clusters on device
  5010.  31h    WORD    number of free clusters (FFFFh = unknown)
  5011.  33h    WORD    root directory cluster number
  5012.  35h    WORD    pointer to alias/subst string
  5013.  37h    WORD    TCB segment address of owner (0000h = none)
  5014.  
  5015. Format of PC-MOS/386 Record Lock Block:
  5016. Offset    Size    Description    (Table 2597)
  5017.  00h    BYTE    signature byte "H" if allocated from system memory pool
  5018.  01h    BYTE    header block ID, "R" = record lock block
  5019.  02h    WORD    length of block in paragraphs
  5020.  04h    WORD    segment address of next header block (0000h if last)
  5021.  06h    WORD    segment address of previous header block (0000h if first)
  5022.  08h    WORD    pointer to next TCB
  5023.  0Ah    WORD    pointer to previous TCB
  5024.  0Ch    WORD    pointer to associated TCB (if applicable)
  5025.  0Eh    WORD    reserved
  5026. ---RLB---
  5027.  10h    WORD    segment address of owner's PSP
  5028.  12h    WORD    segment address of Global File Block (see #2594)
  5029.  14h    WORD    segment address of owner's Task File Block (see #2592)
  5030.  16h    DWORD    file offset of locked region start
  5031.  1Ah    DWORD    length of locked region
  5032.  1Eh    WORD    owner's handle for file
  5033. --------O-D407-------------------------------
  5034. INT D4 - PC-MOS/386 v3.0+ - WAIT FOR EVENT
  5035.     AH = 07h
  5036.     AL = events to monitor (see #2598)
  5037.     BX = number of timer ticks until timeout if AL bit 1 set
  5038.     CX = bitmap of IRQs to monitor if AL bit 2 set
  5039.         (bit 0 = IRQ0 .. bit 15 = IRQ15)
  5040.     DX = port to monitor if AL bit 3 set
  5041. Return: CF clear if successful
  5042.         AL = type of event which woke up task (see #2598)
  5043.         CX = IRQ (if any) which awakened task
  5044.         DX = port (if any) which awakened task
  5045.     CF set on error
  5046.         AX = error code (see #0885 at INT 21/AH=59h)
  5047. Note:    a device driver may make this call with AL=00h, which indicates that
  5048.       the driver is responsible for setting and clearing the TCBWAIT field
  5049.       in the TCB.  To put task to sleep, set TCBWAIT bits 2-0 to 001; to
  5050.       reawaken it, set bit 1 (leaving other bits unchanged)
  5051. SeeAlso: AH=04h,INT 16/AH=00h,INT 38
  5052.  
  5053. Bitfields for PC-MOS/386 events to monitor:
  5054. Bit(s)    Description    (Table 2598)
  5055.  0    keystroke
  5056.  1    timeout
  5057.  2    IRQ
  5058.  3    port access
  5059.  7    return status of user poll routine (other ignored if set)
  5060. --------O-D410-------------------------------
  5061. INT D4 - PC-MOS/386 v3.0+ - ENTER/LEAVE NATIVE 386 EXECUTION MODE
  5062.     AH = 10h
  5063.     AL = direction (00h return to V86 mode, 01h enter native mode)
  5064.     CX = length in bytes of Native Context Area ( >=1024 )
  5065.     DX = segment of Native Context Area
  5066. Return: CF clear if successful
  5067.         running in desired mode at instruction following INT D4 call
  5068.         all segment registers converted to appropriate selectors/segments
  5069.     CF set on error
  5070.         AX = error code (see #0885 at INT 21/AH=59h)
  5071. Note:    MS-DOS calls are available in protected mode
  5072. SeeAlso: AH=11h,AH=12h,AH=13h,INT 2F/AX=1687h,INT 67/AX=DE0Ch,INT 38
  5073. --------O-D411-------------------------------
  5074. INT D4 - PC-MOS/386 v3.0+ - ALLOCATE NATIVE MODE MEMORY BLOCK
  5075.     AH = 11h
  5076.     EBX = block length in bytes
  5077. Return: CF clear if successful
  5078.         EBX = number of bytes actually allocated
  5079.         ES = selector for allocated block
  5080.     CF set on error
  5081.         AX = error code (see #0885 at INT 21/AH=59h)
  5082. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  5083.       system by The Software Link, Inc.
  5084. Note:    the memory must be released before the program terminates
  5085. SeeAlso: AH=10h,AH=12h,INT 38
  5086. --------O-D412-------------------------------
  5087. INT D4 - PC-MOS/386 v3.0+ - FREE NATIVE MODE MEMORY BLOCK
  5088.     AH = 12h
  5089.     ES = selector for block to free
  5090. Return: CF clear if successful
  5091.     CF set on error
  5092.         AX = error code (see #0885 at INT 21/AH=59h)
  5093. SeeAlso: AH=10h,AH=11h,AH=13h,INT 38
  5094. --------O-D413-------------------------------
  5095. INT D4 - PC-MOS/386 v5.01 - GET ALIAS FOR SELECTOR (NATIVE MODE ONLY)
  5096.     AH = 13h
  5097.     AL = type of alias selector (00h data, 01h stack, 02h code)
  5098.     BX = selector
  5099. Return: CF clear if successful
  5100.         AX = new selector or 0000h if BX selector not found
  5101.     CF set on error
  5102.         AX = error code (see #0885 at INT 21/AH=59h)
  5103. SeeAlso: AH=11h,AH=12h
  5104. --------O-D416-------------------------------
  5105. INT D4 - PC-MOS/386 v5.01 - SET/CLEAR IRQ RESERVATION
  5106.     AH = 16h
  5107.     AL = function (00h clear, 01h set reservation)
  5108.     CX = IRQ number
  5109. Return: AX = status
  5110.         (0000h successful, 0001h currently reserved by another task)
  5111. SeeAlso: AH=07h,INT 14/AH=11h"PC-MOS"
  5112. --------O-D419-------------------------------
  5113. INT D4 - PC-MOS/386 v5.01 - GET TASK ID
  5114.     AH = 19h
  5115. Return: BX = caller's task ID
  5116. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  5117.       system by The Software Link, Inc.
  5118. SeeAlso: AH=1Dh,AH=1Eh
  5119. --------O-D41A-------------------------------
  5120. INT D4 - PC-MOS/386 v5.01 - GET/SET TASK PRIORITY
  5121.     AH = 1Ah
  5122.     AL = subfunction (00h read, 01h set, 02h get and set)
  5123.     BX = task ID (FFFFh for current task)
  5124.     CL = new priority value
  5125. Return: CF clear if successful
  5126.         CL = current priority value
  5127.     CF set on error
  5128.         AX = error code (see #0885 at INT 21/AH=59h)
  5129. SeeAlso: AH=1Bh,AH=1Ch
  5130. --------O-D41B-------------------------------
  5131. INT D4 - PC-MOS/386 v5.01 - GET/SET TIME SLICE
  5132.     AH = 1Bh
  5133.     AL = subfunction (00h read, 01h set, 02h get and set)
  5134.     BX = task ID (FFFFh for current task) (see AH=19h)
  5135.     CL = new time slice value
  5136. Return: CF clear if successful
  5137.         CL = current time slice value
  5138.     CF set on error
  5139.         AX = error code (see #0885 at INT 21/AH=59h)
  5140. SeeAlso: AH=1Ah,AH=1Ch
  5141. --------O-D41C-------------------------------
  5142. INT D4 - PC-MOS/386 v5.01 - GET/SET KEYBOARD MODE
  5143.     AH = 1Ch
  5144.     AL = subfunction (00h enable, 01h disable, 02h get mode)
  5145.     BX = task ID (FFFFh for current task)
  5146. Return: CF clear if successful
  5147.         CL = current keyboard state
  5148.     CF set on error
  5149.         AX = error code (INT 21/AH=59h)
  5150. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  5151.       system by The Software Link, Inc.
  5152. SeeAlso: AH=1Ah,AH=1Bh
  5153. --------O-D41D-------------------------------
  5154. INT D4 - PC-MOS/386 v5.01 - GET CURRENT PROGRAM NAME
  5155.     AH = 1Dh
  5156.     BX = task ID (FFFFh for current task) (see AH=19h)
  5157.     ES:DI -> buffer for program name (see #2599)
  5158. Return: CF clear if successful
  5159.         ES:DI buffer filled
  5160.     CF set on error
  5161.         AX = error code (see #0885 at INT 21/AH=59h)
  5162. SeeAlso: AH=19h,AH=1Eh
  5163.  
  5164. Format of PC-MOS/386 program name buffer:
  5165. Offset    Size    Description    (Table 2599)
  5166.  00h  8 BYTEs    filename
  5167.  08h  3 BYTEs    extension
  5168. --------O-D41E-------------------------------
  5169. INT D4 - PC-MOS/386 v5.01 - GET CURRENT USERNAME AND SECURITY CLASS
  5170.     AH = 1Eh
  5171.     BX = task ID (FFFFh for current task)
  5172.     ES:DI -> 4-byte buffer for username
  5173. Return: CF clear if successful
  5174.         CL = security class
  5175.         20h (' ') none
  5176.         41h-5Ah ('A'-'Z') security level
  5177.         ES:DI buffer filled
  5178.     CF set on error
  5179.         AX = error code (see #0885 at INT 21/AH=59h)
  5180. SeeAlso: AH=19h,AH=1Dh
  5181. --------O-D41F-------------------------------
  5182. INT D4 - PC-MOS/386 v5.01 - GET TASK PARTITION INFORMATION
  5183.     AH = 1Fh
  5184.     BX = task ID (FFFFh for current task) (see AH=19h)
  5185. Return: CF clear if successful
  5186.         CX = start segment of task
  5187.         DX = ending segment of task
  5188.     CF set on error
  5189.         AX = error code (see #0885 at INT 21/AH=59h)
  5190. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  5191.       system by The Software Link, Inc.
  5192. SeeAlso: AH=2Dh
  5193. --------O-D420-------------------------------
  5194. INT D4 - PC-MOS/386 v5.01 - GET PORT AND BAUDRATE INFORMATION
  5195.     AH = 20h
  5196.     BX = task ID (FFFFh for current task) (see AH=19h)
  5197. Return: CF clear if successful
  5198.         CX = port number (0000h if none)
  5199.         DI:SI = baudrate (if CX nonzero)
  5200.     CF set on error
  5201.         AX = error code (see #0885 at INT 21/AH=59h)
  5202. SeeAlso: INT 14/AH=0Ch"FOSSIL"
  5203. --------O-D421-------------------------------
  5204. INT D4 - PC-MOS/386 v5.01 - REMOVE A TASK
  5205.     AH = 21h
  5206.     BX = task ID (FFFFh for current task) (see AH=19h)
  5207. Return: CF clear if successful
  5208.         AX = ASCII percentage of System Memory Pool used
  5209.         (AH = tens digit, AL = ones digit)
  5210.         DS,SI destroyed
  5211.     CF set on error
  5212.         AX = error code (see #0885 at INT 21/AH=59h)
  5213. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  5214.       system by The Software Link, Inc.
  5215. SeeAlso: AH=22h
  5216. --------O-D422-------------------------------
  5217. INT D4 - PC-MOS/386 v5.01 - ADD A TASK TO THE SYSTEM
  5218.     AH = 22h
  5219.     DS:SI -> addtask data structure (see #2601)
  5220. Return: CF clear if successful
  5221.         ES = segment address of the new task's TCB data structure
  5222.     CF set on error
  5223.         AX = error code (see #2600)
  5224. SeeAlso: AH=21h
  5225.  
  5226. (Table 2600)
  5227. Values for PC-MOS/386 error code:
  5228.  08h    insufficient memory
  5229.  0Bh    invalid addtask structure format
  5230.  12h    insufficient available space in system memory pool
  5231.  1Fh    general failure
  5232.  55h    already allocated
  5233.  57h    if task already in use or invalid parameter
  5234.  
  5235. Format of PC-MOS/386 addtask data structure:
  5236. Offset    Size    Description    (Table 2601)
  5237.  00h    WORD    task size in KB (min 16KB)
  5238.  02h    WORD    task ID (0000h for automatic selection)
  5239.  04h    BYTE    task class (' ' or 'A'-'Z')
  5240.  05h    DWORD    -> ASCIZ name of task startup batchfile
  5241.  09h    DWORD    -> task's terminal driver (0000000h = background task)
  5242.  0Dh    WORD    task port
  5243.  0Fh    DWORD    task baud rate
  5244.  13h    DWORD    (ret) total extended memory
  5245.  17h    DWORD    (ret) number of 4K extended memory pages allocated
  5246.  1Bh    WORD    (ret) paragraphs of system memory pool allocated
  5247.  1Dh    WORD    (ret) system memory pool size in paragraphs
  5248.  1Fh    WORD    (ret) ASCII task percentage of system memory pool
  5249.  21h  3 BYTEs    reserved
  5250. --------O-D423-------------------------------
  5251. INT D4 - PC-MOS/386 v5.01 - CHANGE TERMINAL DRIVER
  5252.     AH = 23h
  5253.     BX = task ID (FFFFh for current task)
  5254.     DS:SI -> entry point of the new Device Driver Terminal
  5255. Return: CF clear if successful
  5256.     CF set on error
  5257.         AX = error code (see #0885 at INT 21/AH=59h)
  5258. --------O-D424-------------------------------
  5259. INT D4 U - PC-MOS/386 v5.01 - GET OPERATING SYSTEM SERIAL NUMBER
  5260.     AH = 24h
  5261. Return: DS:DX -> '$'-terminated string containing the serial number
  5262. --------O-D425-------------------------------
  5263. INT D4 - PC-MOS/386 v5.01 - IDENTIFY LOAD ADDRESS OF DEVICE DRIVER LOCATION
  5264.     AH = 25h
  5265.     DX = driver's CS value
  5266. Return: AX = segment address of driver in system memory pool
  5267.         (0000h if the driver is not within the system memory pool)
  5268. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  5269.       system by The Software Link, Inc.
  5270. --------O-D426-------------------------------
  5271. INT D4 - PC-MOS/386 v5.01 - GET SYSTEM CONTROL BLOCK SEGMENT/SELECTOR
  5272.     AH = 26h
  5273. Return: DX = segment/selector of the System Control Block (see #2587)
  5274. Note:    this function supersedes AH=02h
  5275. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah
  5276. --------O-D427-------------------------------
  5277. INT D4 - PC-MOS/386 v5.01 - GET TASK CONTROL BLOCK SEGMENT/SELECTOR
  5278.     AH = 27h
  5279.     BX = task ID (FFFFh if current task) (see AH=19h)
  5280. Return: CF clear if successful
  5281.         DX = segment/selector for the Task Control Block (see #2589)
  5282.     CF set on error
  5283.         AX = error code (INT 21/AH=59h)
  5284. Note:    this function supersedes AH=04h
  5285. SeeAlso: AH=26h,AH=28h,AH=29h,AH=2Ah
  5286. --------O-D428-------------------------------
  5287. INT D4 - PC-MOS/386 v5.01 - GET CONTROL BLOCK DATA FROM SCB OR TCB
  5288.     AH = 28h
  5289.     BX = offset into control block at which to start reading
  5290.     CX = number of bytes to read
  5291.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  5292.     ES:DI -> buffer for data
  5293. Return: CF clear if successful
  5294.     CF set on error
  5295.         AX = error code (see also INT 21/AH=59h)
  5296.         05h access denied due to an invalid segment/selector
  5297. SeeAlso: AH=26h,AH=27h,AH=29h,AH=2Ah
  5298. --------O-D429-------------------------------
  5299. INT D4 - PC-MOS/386 v5.01 - WRITE CONTROL BLOCK DATA INTO SCB OR TCB
  5300.     AH = 29h
  5301.     BX = offset into control block at which to start writing
  5302.     CX = number of bytes to write
  5303.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  5304.     DS:SI -> buffer containing data to be written
  5305. Return: CF clear if successful
  5306.     CF set on errro
  5307.         AX = error code (see also INT 21/AH=59h)
  5308.         05h access denied due to an invalid segment/selector
  5309. Note:     this function performs no bounds checking
  5310. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  5311.       system by The Software Link, Inc.
  5312. SeeAlso: AH=26h,AH=27h,AH=28h,AH=2Ah
  5313. --------O-D42A-------------------------------
  5314. INT D4 - PC-MOS/386 v5.01 - SWAP CONTROL BLOCK DATA OF SCB OR TCB
  5315.     AH = 2Ah
  5316.     BX = offset into control block at which to start swap
  5317.     CX = number of bytes to swap
  5318.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  5319.     DS:SI -> buffer containing new data and to receive current data
  5320. Return: CF clear if successful
  5321.     CF set on error
  5322.         AX = error code (see also INT 21/AH=59h)
  5323.         05h access denied due to an invalid segment/selector
  5324. Note:    the interrupts are disabled during the swap to prevent corruption
  5325. SeeAlso: AH=26h,AH=27h,AH=28h,AH=29h
  5326. --------O-D42C-------------------------------
  5327. INT D4 - PC-MOS/386 v5.01 - GET/SET SPOOLER PARAMETERS
  5328.     AH = 2Ch
  5329.     AL = function
  5330.         00h set spooler timeout
  5331.         CX = timout value in seconds
  5332.         01h get spooler timeout
  5333.         Return: CX = current timeout in seconds
  5334.         02h get spooler parameters
  5335.         Return: CH = priority (00h-09h)
  5336.             CL = disposition (d, h, i, n, s)
  5337.             SI = class (a - z)
  5338.         03h set spooler parameters
  5339.         CH = priority (00h-09h)
  5340.         CL = disposition (d, h, i, n, s)
  5341.         SI = class (a - z)
  5342.         BX = task ID (FFFFh for current task)
  5343.         DX = LPT number
  5344. Return: CF clear if successful
  5345.     CF set on error
  5346.         AX = error code (see #0885 at INT 21/AH=59h)
  5347. SeeAlso: AH=00h,AH=02h,AH=03h
  5348. --------O-D42D-------------------------------
  5349. INT D4 - PC-MOS/386 v5.01 - GET MAXIMUM TASK SIZE
  5350.     AH = 2Dh
  5351. Return: DX = maximum task size in paragraphs
  5352.     BX = start address of task space
  5353. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  5354.       system by The Software Link, Inc.
  5355. SeeAlso: AH=1Fh,AH=22h
  5356. --------r-D5---------------------------------
  5357. INT D5 - IBM ROM BASIC - used while in interpreter
  5358. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5359.     BASIC.COM/BASICA.COM do not restore vector on termination
  5360. SeeAlso: INT 80"BASIC",INT D4"BASIC",INT D6"BASIC"
  5361. --------r-D5---------------------------------
  5362. INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5363. --------r-D6---------------------------------
  5364. INT D6 - IBM ROM BASIC - used while in interpreter
  5365. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5366.     BASIC.COM/BASICA.COM do not restore vector on termination
  5367. SeeAlso: INT 80"BASIC",INT D5"BASIC",INT D7"BASIC"
  5368. --------r-D6---------------------------------
  5369. INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5370. --------r-D7---------------------------------
  5371. INT D7 - IBM ROM BASIC - used while in interpreter
  5372. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5373.     BASIC.COM/BASICA.COM do not restore vector on termination
  5374. SeeAlso: INT 80"BASIC",INT D6"BASIC",INT D8"BASIC"
  5375. --------r-D7---------------------------------
  5376. INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5377. --------r-D8---------------------------------
  5378. INT D8 - IBM ROM BASIC - used while in interpreter
  5379. Notes:    called by ROM BASIC
  5380.     BASIC.COM/BASICA.COM do not restore vector on termination
  5381. SeeAlso: INT 80"BASIC",INT D7"BASIC",INT D9"BASIC"
  5382. --------r-D8---------------------------------
  5383. INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5384. --------H-D8---------------------------------
  5385. INT D8 - Screen Thief v1.00 - RELOCATED IRQ0
  5386. Range:    INT 78h to INT E0h, selected by commandline switch
  5387. Note:    Screen Thief relocates IRQs 0 through 7 to INT D8 to INT DF by default,
  5388.       but may be directed via a commandline switch to use any range
  5389.       starting at a multiple of 8 between 78h and E0h
  5390. SeeAlso: INT 08"IRQ0",INT 2D/AL=10h"Screen Thief",INT 50"DESQview"
  5391. SeeAlso: INT D9"Screen Thief"
  5392. --------r-D9---------------------------------
  5393. INT D9 - IBM ROM BASIC - used while in interpreter
  5394. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5395.     BASIC.COM/BASICA.COM do not restore vector on termination
  5396. SeeAlso: INT 80"BASIC",INT D8"BASIC",INT DA"BASIC"
  5397. --------r-D9---------------------------------
  5398. INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5399. --------H-D9---------------------------------
  5400. INT D9 - Screen Thief v1.00 - RELOCATED IRQ1
  5401. Range:    INT 79h to INT E1h, selected by commandline switch
  5402. Note:    (see INT D8"Screen Thief")
  5403. SeeAlso: INT 09"IRQ1",INT D8"Screen Thief",INT DA"Screen Thief"
  5404. --------r-DA---------------------------------
  5405. INT DA - IBM ROM BASIC - used while in interpreter
  5406. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5407.     BASIC.COM/BASICA.COM do not restore vector on termination
  5408. SeeAlso: INT 80"BASIC",INT D9"BASIC",INT DB"BASIC"
  5409. --------r-DA---------------------------------
  5410. INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5411. --------H-DA---------------------------------
  5412. INT DA - Screen Thief v1.00 - RELOCATED IRQ2
  5413. Range:    INT 7Ah to INT E2h, selected by commandline switch
  5414. Note:    (see INT D8"Screen Thief")
  5415. SeeAlso: INT 0A"IRQ2",INT D9"Screen Thief",INT DB"Screen Thief"
  5416. --------r-DB---------------------------------
  5417. INT DB - IBM ROM BASIC - used while in interpreter
  5418. Notes:    called by ROM BASIC
  5419.     BASIC.COM/BASICA.COM do not restore vector on termination
  5420. SeeAlso: INT 80"BASIC",INT DA"BASIC",INT DC"BASIC"
  5421. --------r-DB---------------------------------
  5422. INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5423. --------H-DB---------------------------------
  5424. INT DB - Screen Thief v1.00 - RELOCATED IRQ3
  5425. Range:    INT 7Bh to INT E3h, selected by commandline switch
  5426. Note:    (see INT D8"Screen Thief")
  5427. SeeAlso: INT 0B"IRQ3",INT DA"Screen Thief",INT DC"Screen Thief"
  5428. --------u-DC---------------------------------
  5429. INT DC - PC/370 v4.1- - API
  5430. SeeAlso: INT 60"PC/370"
  5431. --------r-DC---------------------------------
  5432. INT DC - IBM ROM BASIC - used while in interpreter
  5433. Notes:    called by ROM BASIC
  5434.     BASIC.COM/BASICA.COM do not restore vector on termination
  5435. SeeAlso: INT 80"BASIC",INT DB"BASIC",INT DD"BASIC"
  5436. --------r-DC---------------------------------
  5437. INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5438. --------H-DC---------------------------------
  5439. INT DC - Screen Thief v1.00 - RELOCATED IRQ4
  5440. Range:    INT 7Ch to INT E4h, selected by commandline switch
  5441. Note:    (see INT D8"Screen Thief")
  5442. SeeAlso: INT 0C"IRQ4",INT DB"Screen Thief",INT DD"Screen Thief"
  5443. --------r-DD---------------------------------
  5444. INT DD - IBM ROM BASIC - used while in interpreter
  5445. Notes:    called by ROM BASIC
  5446.     BASIC.COM/BASICA.COM do not restore vector on termination
  5447. SeeAlso: INT 80"BASIC",INT DC"BASIC",INT DE"BASIC"
  5448. --------r-DD---------------------------------
  5449. INT DD - STSC APL*PLUS/PC v9.0 - PLACE KEYSTROKE EVENTS IN INPUT BUFFER
  5450.     BX = where to place keystrokes
  5451.         FFFFh insert before current buffer contents
  5452.         0000h replace current contents
  5453.         0001h insert after current contents
  5454.     CX = number of keystroke events to insert
  5455.     ES:SI -> data to be placed into buffer (list of WORD key codes)
  5456.         4000h + N = normal ASCII keystroke N (N = 00h to FFh)
  5457.         4100h + N = extended ASCII keystroke N (N = 03h to 84h)
  5458. SeeAlso: INT 16/AH=05h
  5459. --------H-DD---------------------------------
  5460. INT DD - Screen Thief v1.00 - RELOCATED IRQ5
  5461. Range:    INT 7Dh to INT E5h, selected by commandline switch
  5462. Note:    (see INT D8"Screen Thief")
  5463. SeeAlso: INT 0D"IRQ5",INT DC"Screen Thief",INT DE"Screen Thief"
  5464. --------r-DE---------------------------------
  5465. INT DE - IBM ROM BASIC - used while in interpreter
  5466. Notes:    called by ROM BASIC
  5467.     BASIC.COM/BASICA.COM do not restore vector on termination
  5468. SeeAlso: INT 80"BASIC",INT DD"BASIC",INT DF"BASIC"
  5469. --------r-DE---------------------------------
  5470. INT DE - APL*PLUS/PC - ???
  5471. Note:    appears to be the same as INT 16
  5472. --------H-DE---------------------------------
  5473. INT DE - Screen Thief v1.00 - RELOCATED IRQ6
  5474. Range:    INT 7Eh to INT E6h, selected by commandline switch
  5475. Note:    (see INT D8"Screen Thief")
  5476. SeeAlso: INT 0E"IRQ6",INT DD"Screen Thief",INT DF"Screen Thief"
  5477. --------b-DF---------------------------------
  5478. INT DF - Victor 9000 - SuperBIOS
  5479. --------r-DF---------------------------------
  5480. INT DF - IBM ROM BASIC - used while in interpreter
  5481. Notes:    called by ROM BASIC
  5482.     BASIC.COM/BASICA.COM do not restore vector on termination
  5483. SeeAlso: INT 80"BASIC",INT DE"BASIC",INT E0"BASIC"
  5484. --------r-DF---------------------------------
  5485. INT DF - APL*PLUS/PC - SAME AS INT 10
  5486. SeeAlso: INT 10
  5487. --------H-DF---------------------------------
  5488. INT DF - Screen Thief v1.00 - RELOCATED IRQ7
  5489. Range:    INT 7Fh to INT E7h, selected by commandline switch
  5490. Note:    (see INT D8"Screen Thief")
  5491. SeeAlso: INT 0F"IRQ7",INT DE"Screen Thief"
  5492. --------r-E0---------------------------------
  5493. INT E0 - IBM ROM BASIC - used while in interpreter
  5494. Notes:    called by ROM BASIC
  5495.     BASIC.COM/BASICA.COM do not restore vector on termination
  5496. SeeAlso: INT 80"BASIC",INT DF"BASIC",INT E1"BASIC"
  5497. --------r-E0---------------------------------
  5498. INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION
  5499. SeeAlso: INT CF"APL"
  5500. --------v-E0---------------------------------
  5501. INT E0 - VIRUS - "Micro-128" - ???
  5502. Note:    Micro-128 also overwrites the upper half of the interrupt table
  5503. SeeAlso: INT 9E"VIRUS",INT F1"VIRUS"
  5504. --------O-E0---------------------------------
  5505. INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS
  5506.     CL = function number (see #2602,#2603)
  5507.     DS,DX = parameters
  5508. Return: as appropriate for function
  5509.     CX is often the error code (see #2604)
  5510. Notes:    several functions are covered in more detail in following entries
  5511.     most of these calls are also supported by Digital Research's DOS Plus
  5512.       v2.1; the unsupported functions are 26h,29h-2Bh,3Ah,3Dh-62h,71h-8Ch,
  5513.       90h-92h,94h-97h,9Bh-ABh, and AEh-FFh
  5514. SeeAlso: INT 21/AX=4459h,INT 21/AH=E0h"DOS Plus"
  5515.  
  5516. (Table 2602)
  5517. Values for CP/M-86,DR Multiuser DOS function number:
  5518.  00h    terminate calling process (see also INT 21/AH=00h)
  5519.  01h    read a character
  5520.  02h    write character to default console (see also INT 21/AH=02h)
  5521.  03h    read character from default AUX (see also INT 21/AH=03h)
  5522.  04h    write character to default AUX (see also INT 21/AH=04h)
  5523.  05h    write character to default list device (see also INT 21/AH=05h)
  5524.  06h    perform raw I/O on default console (see also INT 21/AH=06h)
  5525.  07h    return default AUX input status
  5526.  08h    return default AUX output status
  5527.  09h    write string to default console (see also INT 21/AH=09h)
  5528.  0Ah    read string from default console (see also INT 21/AH=0Ah)
  5529.  0Bh    return default console input status (see also INT 21/AH=0Bh)
  5530.  0Ch    get BDOS release ID
  5531.  0Dh    reset all disk drives (see also INT 21/AH=0Dh)
  5532.  0Eh    set default drive (see also INT 21/AH=0Eh)
  5533.  0Fh    open file via FCB (see also INT 21/AH=0Fh,#0574)
  5534.  10h    close file via FCB (see also INT 21/AH=10h)
  5535.  11h    search for first matching file with FCB (see also INT 21/AH=11h)
  5536.  12h    search for next matching file with FCB (see also INT 21/AH=12h)
  5537.  13h    delete file via FCB (see also INT 21/AH=13h)
  5538.  14h    sequential read via FCB (see also INT 21/AH=14h)
  5539.  15h    sequential write via FCB (see also INT 21/AH=15h)
  5540.  16h    create file via FCB (see also INT 21/AH=16h)
  5541.  17h    rename file via FCB (see also INT 21/AH=17h)
  5542.  18h    get bit map of logged drives
  5543.  19h    get default drive (see also INT 21/AH=19h)
  5544.  1Ah    set DMA address offset
  5545.  1Bh    get default disk allocation vector (see also INT 21/AH=1Bh)
  5546.  1Ch    set default drive to read-only
  5547.  1Dh    get bit map of read-only drives
  5548.  1Eh    set file attributes via FCB (see also INT 21/AX=4301h)
  5549.  1Fh    get address of disk parameter block (see also INT 21/AH=1Fh)
  5550.  20h    get/set default user number
  5551.  21h    read random record via FCB (see also INT 21/AH=21h)
  5552.  22h    write random record via FCB (see also INT 21/AH=22h)
  5553.  23h    compute file size with FCB (see also INT 21/AH=23h)
  5554.  24h    get FCB random record number (see also INT 21/AH=24h)
  5555.  25h    reset specified drives
  5556.  26h    access specified drives (not in DR DOS Plus v2.1)
  5557.  27h    free specified drives
  5558.  28h    write random with FCB, zero fill (see also also INT 21/AH=28h)
  5559.  2Ah    lock records in FCB file (see also INT 21/AH=5Ch)
  5560.  2Bh    unlock records in FCB file (see also INT 21/AH=5Ch)
  5561.  2Ch    set BDOS multisector count
  5562.  2Dh    set BDOS error mode
  5563.  2Eh    get free space on disk
  5564.  2Fh    load, initialize, and jump to process (see also INT 21/AH=4Bh)
  5565.  30h    flush write-deferred buffers
  5566.  31h    get/set system variable (DOS Plus v2.1)
  5567.  32h    call BIOS (XIOS) character routine (see #2603)
  5568.  33h    set DMA address segment
  5569.  34h    get DMA buffer address
  5570.  35h    CP/M-86 allocate maximum memory
  5571.  36h    allocate maximum memory at specified segment
  5572.  37h    CP/M-86 allocate memory segment (see also INT 21/AH=48h)
  5573.  38h    allocate memory at specified segment
  5574.  39h    CP/M-86 free specified memory segment (see also INT 21/AH=49h)
  5575.  3Ah    CP/M-86 free all memory (not in DOS Plus v2.1)
  5576.  3Bh    load .CMD file into memory
  5577.  3Ch    (DOS Plus v2.1) call RSX program
  5578.  40h    (DR-NET) log on a server
  5579.  41h    (DR-NET) log off a server
  5580.  42h    (DR-NET) send a message
  5581.  43h    (DR-NET) receive a message
  5582.  44h    (DR-NET) get network status
  5583.  45h    (DR-NET) get requestor configuration table
  5584.  46h    (DR-NET) set compatibility attributes
  5585.  47h    (DR-NET) get server configuration table
  5586.  48h    (DR-NET) set network error mode
  5587.  49h    (DR-NET) attach network
  5588.  4Ah    (DR-NET) detach network
  5589.  4Bh    (DR-NET) set default password
  5590.  4Ch    (DR-NET) get-set long timeout
  5591.  4Dh    (DR-NET) get parameter table
  5592.  50h    (DR-NET) get network information
  5593.  53h    get current time (see also INT 21/AH=2Ch)
  5594.  54h    set current time (see also INT 21/AH=2Dh)
  5595.  55h    get binary system date (see also INT 21/AH=2Ah)
  5596.  56h    set system date (see also INT 21/AH=2Bh)
  5597.  57h    allocate system flag
  5598.  58h    deallocate system flag
  5599.  59h    reserve memory in global area
  5600.  5Ah    lock physical drive
  5601.  5Bh    unlock physical drive
  5602.  5Ch    search path for executable file
  5603.  5Dh    load and execute command (see also INT 21/AH=4Bh)
  5604.  5Eh    get/set process exit code
  5605.  5Fh    set country information
  5606.  60h    get country information
  5607.  63h    truncate FCB file (see also INT 21/AH=28h)
  5608.  64h    create/update directory label
  5609.  65h    get directory label
  5610.  66h    get FCB date stamp and password mode
  5611.  67h    write extended FCB
  5612.  68h    set system date and time
  5613.  69h    get system date and time in binary
  5614.  6Ah    establish password for file access
  5615.  6Bh    get OS serial number
  5616.  6Ch    (DOS Plus v2.1) get/set program return code
  5617.  6Dh    get/set console mode
  5618.  6Eh    get/set string delimiter
  5619.  6Fh    write block to default console
  5620.  70h    write block to default list device
  5621.  71h    execute DOS-compatible function
  5622.  74h    set FCB time and date stamps
  5623.  80h    allocate memory
  5624.  82h    deallocate memory
  5625.  83h    poll I/O device
  5626.  84h    wait on system flag
  5627.  85h    set system flag
  5628.  86h    create message queue
  5629.  87h    open message queue
  5630.  88h    delete message queue
  5631.  89h    read from message queue
  5632.  8Ah    conditionally read from message queue
  5633.  8Bh    write to message queue
  5634.  8Ch    conditionally write to message queue
  5635.  8Dh    delay calling process
  5636.  8Eh    call process dispatcher (yield CPU)
  5637.  8Fh    terminate calling process (same as function 00h)
  5638.  90h    create a process
  5639.  91h    set calling process' priority
  5640.  92h    attach to default console
  5641.  93h    detach from default console
  5642.  95h    assign default console to process
  5643.  96h    interpret and execute commandline
  5644.  97h    resident procedure library
  5645.  98h    parse ASCII string into FCB (see also INT 21/AH=29h)
  5646.  99h    return default console
  5647.  9Ah    get address of system data (SYSDAT)
  5648.  9Bh    get system time and date
  5649.  9Ch    return calling process' descriptor
  5650.  9Dh    terminate process by name or PD address
  5651.  9Eh    attach to default list device
  5652.  9Fh    detach from default list device
  5653.  A0h    select default list device
  5654.  A1h    conditionally attach to default list device
  5655.  A2h    conditionally attach to default console
  5656.  A3h    get OS version number
  5657.  A4h    get default list device
  5658.  A5h    attach to default AUX
  5659.  A6h    detach from default AUX
  5660.  A7h    conditionally attach to default AUX
  5661.  A8h    set default AUX
  5662.  A9h    return default AUX
  5663.  ACh    read block from default AUX
  5664.  ADh    (DOS Plus v2.1) write block to default AUX
  5665.  B0h    configure default AUX
  5666.  B1h    get/set device control parameters
  5667.  B2h    send Break through default AUX
  5668.  B3h    allocate physical memory
  5669.  B4h    free physical memory
  5670.  B5h    map physical memory
  5671.  B6h    nondestructive message queue read
  5672.  B7h    timed wait on system flag
  5673.  B8h    get/set I/O port mapping
  5674.  B9h    set list device timeout
  5675.  BAh    set AUX timeout value
  5676.  BBh    execute XIOS service
  5677.  BDh    (DR Multiuser DOS) delay
  5678.  FFh    return 80386 to native mode
  5679.  
  5680. (Table 2603)
  5681. Values for DOS Plus v2.1 XIOS functions:
  5682.  00h    terminate program
  5683.  01h    ???
  5684.  02h    check for console input status
  5685.  03h    read character from console
  5686.  04h    write character to console
  5687.  05h    write character to list device
  5688.  06h    write character to auxiliary device
  5689.  07h    read cahracter from auxiliary device
  5690.  0Fh    get list device status
  5691.  10h-14h reserved
  5692.  15h    device initialization
  5693.  16h    check console output status
  5694.  17h-7Fh reserved
  5695. ---BBC Acorn---
  5696.  80h    get XIOS version
  5697.  81h    get Tube semaphore
  5698.  82h    release Tube semaphore
  5699.  83h    select text/graphics
  5700.  84h    update B&W graphics rectangle
  5701.  85h    update color graphics rectangle
  5702.  86h    get/release/update mouse
  5703.  87h    get system error info
  5704.  88h    entry in CLOCK called by WatchDog RSP
  5705.  89h    BBC OSBYTE function
  5706.  8Ah    BBC OSWORD function
  5707.  
  5708. (Table 2604)
  5709. Values for DR Multiuser DOS Error Return Code:
  5710.  00h    no error
  5711.  01h    system call not implemented
  5712.  02h    illegal system call number
  5713.  03h    cannot find memory
  5714.  04h    illegal flag number
  5715.  05h    flag overrun
  5716.  06h    flag underrun
  5717.  07h    no unused Queue Descriptors
  5718.  08h    no free queue buffer
  5719.  09h    cannot find queue
  5720.  0Ah    queue in use
  5721.  0Ch    no free Process Descriptors
  5722.  0Dh    no queue access
  5723.  0Eh    empty queue
  5724.  0Fh    full queue
  5725.  10h    CLI queue missing
  5726.  11h    no 8087 in system
  5727.  12h    no unused Memory Descriptors
  5728.  13h    illegal console number
  5729.  14h    no Process Descriptor match
  5730.  15h    no console match
  5731.  16h    no CLI process
  5732.  17h    illegal disk number
  5733.  18h    illegal filename
  5734.  19h    illegal filetype
  5735.  1Ah    character not ready
  5736.  1Bh    illegal Memory Descriptor
  5737.  1Ch    bad return from BDOS load
  5738.  1Dh    bad return from BDOS read
  5739.  1Eh    bad return from BDOS open
  5740.  1Fh    null command
  5741.  20h    not owner of resource
  5742.  21h    no CSEG in load file
  5743.  22h    process Descriptor exists on Thread Root
  5744.  23h    could not terminate process
  5745.  24h    cannot attach to process
  5746.  25h    illegal list device number
  5747.  26h    illegal password
  5748.  28h    external termination occurred
  5749.  29h    fixup error upon load
  5750.  2Ah    flag set ignored
  5751.  2Bh    illegal auxilliary device number
  5752. --------O-E0----CL03-------------------------
  5753. INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM AUX DEVICE
  5754.     CL = 03h
  5755. Return: AL = ASCII character
  5756. Notes:    A_READ reads the next 8-bit character from the logical auxilliary
  5757.       input device (AUXn:); control is not returned to the calling
  5758.       process until a character has been read.
  5759.     if another process owns AUX, this call blocks until the device becomes
  5760.       available
  5761. SeeAlso: INT 21/AH=03h,INT E0/CL=04h,INT E0/CL=07h,INT E0/CL=A5h,INT E0/CL=ACh
  5762. --------O-E0----CL04-------------------------
  5763. INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO AUX DEVICE
  5764.     CL = 04h
  5765.     DL = ASCII character
  5766. Return: nothing
  5767. Note:    if another process owns AUX, this call blocks until the device becomes
  5768.       available
  5769. SeeAlso: INT 21/AH=04h,INT E0/CL=03h,INT E0/CL=08h,INT E0/CL=A5h,INT E0/CL=ADh
  5770. --------O-E0----CL07-------------------------
  5771. INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE
  5772.     CL = 07h
  5773. Return: AL = status
  5774.         00h not ready
  5775.         FFh character available
  5776. Desc:    determine whether the current AUX device has input available
  5777. SeeAlso: INT E0/CL=03h,INT E0/CL=08h
  5778. --------O-E0----CL08-------------------------
  5779. INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE
  5780.     CL = 08h
  5781. Return: AL = status
  5782.         00h not ready
  5783.         FFh ready for output
  5784. Desc:    determine whether the current AUX device is able to accept more output
  5785. SeeAlso: INT E0/CL=04h,INT E0/CL=07h
  5786. --------O-E0----CL59-------------------------
  5787. INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA
  5788.     CL = 59h
  5789.     DX = size in bytes
  5790. Return: AX = status
  5791.         FFFFh failed
  5792.         other successful
  5793.         ES:BX -> reserved memory
  5794. --------O-E0----CL86-------------------------
  5795. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE
  5796.     CL = 86h
  5797.     DS:DX -> queue descriptor (see #2605)
  5798. Return: AX = status (0000h success, FFFFh failure)
  5799.     CX = error code (see #2604)
  5800. SeeAlso: INT E0/CL=87h
  5801.  
  5802. Format of DR Multiuser DOS queue descriptor:
  5803. Offset    Size    Description    (Table 2605)
  5804.  00h  2 WORDs    internal use, initialize to zeros
  5805.  04h    WORD    flags
  5806.  06h  8 BYTEs    queue name
  5807.  0Eh    WORD    length of message
  5808.  10h    WORD    number of messages
  5809.  12h  4 WORDs    internal use, initialize to zeros
  5810.  1Ah    WORD    offset in system area of buffer for messages
  5811. --------O-E0----CL87-------------------------
  5812. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE
  5813.     CL = 87h
  5814.     DS:DX -> queue parameter block (see #2606)
  5815. Return: AX = status (0000h success, FFFFh failure)
  5816.     CX = error code (see #2604)
  5817. SeeAlso: INT E0/CL=86h,INT E0/CL=89h
  5818.  
  5819. Format of DR Multiuser DOS queue parameter block:
  5820. Offset    Size    Description    (Table 2606)
  5821.  00h    WORD    internal use, initialize to zero
  5822.  02h    WORD    queue ID (set by INT E0/CL=87h)
  5823.  04h    WORD    internal use, initialize to zero
  5824.  06h    WORD    offset of queue message buffer
  5825.  08h  8 BYTEs    queue name
  5826. --------O-E0----CL89-------------------------
  5827. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE
  5828.     CL = 89h
  5829.     DS:DX -> queue parameter block (see #2606)
  5830. Return: AX = status (0000h success, FFFFh failure)
  5831.     CX = error code (see #2604)
  5832. SeeAlso: INT E0/CL=87h,INT E0/CL=8Ah,INT E0/CL=8Bh
  5833. --------O-E0----CL8A-------------------------
  5834. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE
  5835.     CL = 8Ah
  5836.     DS:DX -> queue parameter block (see #2606)
  5837. Return: AX = status (0000h success, FFFFh failure)
  5838.     CX = error code (see #2604)
  5839. SeeAlso: INT E0/CL=87h,INT E0/CL=89h,INT E0/CL=8Ch
  5840. --------O-E0----CL8B-------------------------
  5841. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE
  5842.     CL = 8Bh
  5843.     DS:DX -> queue parameter block (see #2606)
  5844. Return: AX = status (0000h success, FFFFh failure)
  5845.     CX = error code (see #2604)
  5846. SeeAlso: INT E0/CL=89h,INT E0/CL=8Ch
  5847. --------O-E0----CL8C-------------------------
  5848. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE
  5849.     CL = 8Ch
  5850.     DS:DX -> queue parameter block (see #2606)
  5851. Return: AX = status (0000h success, FFFFh failure)
  5852.     CX = error code (see #2604)
  5853. SeeAlso: INT E0/CL=8Ah,INT E0/CL=8Bh
  5854. --------O-E0----CL8E-------------------------
  5855. INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER
  5856.     CL = 8Eh
  5857.     DX = FFFFh (optional) to force dispatch
  5858. Return: nothing
  5859. Desc:    allow other processes of the same or higher priority to run if they
  5860.       are ready
  5861. Note:    if DX=FFFFh, a dispatch is forced even if no other process is ready
  5862. SeeAlso: INT E0/CL=91h
  5863. --------O-E0----CL91-------------------------
  5864. INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY
  5865.     CL = 91h
  5866.     DL = new priority (00h highest to FFh lowest)
  5867. Note:    sets priority of calling process; transient processes are initialized
  5868.       to priority C8h
  5869. SeeAlso: INT E0/CL=8Eh
  5870. --------O-E0----CL93-------------------------
  5871. INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE
  5872.     CL = 93h
  5873. Return: AX = status
  5874.         0000h successfully detached
  5875.         FFFFh detach failed
  5876. SeeAlso: INT E0/CL=A6h
  5877. --------O-E0----CLA5-------------------------
  5878. INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE
  5879.     CL = A5h
  5880. Desc:    attaches the default auxiliary device to the calling process unless
  5881.       it is already attached to another process, in which case the call
  5882.       blocks until the device becomes available
  5883. Note:    this call should be used before attempting to read or write from
  5884.       the AUX device; however, the I/O calls internally call this function
  5885.       to ensure device ownership
  5886. SeeAlso: INT E0/CL=03h,INT E0/CL=04h,INT E0/CL=A6h,INT E0/CL=A7h,INT E0/CL=A8h
  5887. SeeAlso: INT E0/CL=ACh,INT E0/CL=ADh,INT E0/CL=B0h
  5888. --------O-E0----CLA6-------------------------
  5889. INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE
  5890.     CL = A6h
  5891. Return: AX = status
  5892.         0000h successfully detached
  5893.         FFFFh detach failed
  5894.     CX = error code
  5895. SeeAlso: INT E0/CL=93h,INT E0/CL=A5h,INT E0/CL=A7h
  5896. --------O-E0----CLA7-------------------------
  5897. INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE
  5898.     CL = A7h
  5899. Return: AX = status
  5900.         0000h attached
  5901.         FFFFh unable to attach
  5902. Desc:    attaches the default auxiliary device to the calling process if it is
  5903.       available
  5904. Note:    does not block if the device is already in use
  5905. SeeAlso: INT E0/CL=A5h,INT E0/CL=A6h,INT E0/CL=A8h,INT E0/CL=B0h
  5906. --------O-E0----CLA8-------------------------
  5907. INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER
  5908.     CL = A8h
  5909.     DL = auxiliary device number
  5910. Return: AX = status
  5911.         0000h successful
  5912.         FFFFh failed
  5913.     CX = error code
  5914. Desc:    specify which physical device will become AUX
  5915. SeeAlso: INT E0/CL=A5h,INT E0/CL=A9h
  5916. --------O-E0----CLA9-------------------------
  5917. INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER
  5918.     CL = A9h
  5919. Return: AL = current default auxiliary device number
  5920. Desc:    determine which physical device is currently AUX
  5921. SeeAlso: INT E0/CL=A8h
  5922. --------O-E0----CLAC-------------------------
  5923. INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE
  5924.     CL = ACh
  5925.     DS:DX -> character control block (CHCB) (see #2607)
  5926. Return: AX = number of characters read
  5927. Desc:    read characters from the default auxiliary (AUXn:) device into a buffer
  5928.       until the buffer is full or the device is no longer ready
  5929. Notes:    if the device is initially not ready, blocks until at least one
  5930.       character has been read
  5931.     if another process owns AUX, this call blocks until the device becomes
  5932.       available
  5933. SeeAlso: INT E0/CL=03h,INT E0/CL=A5h,INT E0/CL=ADh
  5934.  
  5935. Format of DR Multiuser DOS character control block (CHCB):
  5936. Offset    Size    Description    (Table 2607)
  5937.  00h    DWORD    pointer to character buffer
  5938.  04h    WORD    length of character buffer
  5939. --------O-E0----CLAD-------------------------
  5940. INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE
  5941.     CL = ADh
  5942.     DS:DX -> character control block (see #2607)
  5943. Return: AX = number of characters written
  5944. Note:    does not return until at least one character has been written
  5945. SeeAlso: INT E0/CL=04h,INT E0/CL=A5h,INT E0/CL=ACh
  5946. --------O-E0----CLB0-------------------------
  5947. INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS
  5948.     CL = B0h
  5949.     DX:DX -> AUX device parameter block (see #2608)
  5950. Return: AX = status
  5951.         0000h successful
  5952.         parameter block updated
  5953.         FFFFh failed
  5954.         CX = error code
  5955. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  5956.  
  5957. Format of DR Multiuser DOS AUX device parameter block:
  5958. Offset    Size    Description    (Table 2608)
  5959.  00h    BYTE    function (00h get, 01h set)
  5960.  01h    BYTE    baud rate (see #2610) FFh = don't change/unknown
  5961.  02h    BYTE    parity (see #2609)
  5962.  03h    BYTE    stop bits (00h one, 01h 1.5, 02h two, FFh unknown/don't change)
  5963.  04h    BYTE    data bits (05h-08h or FFh unknown/don't change)
  5964.  05h    BYTE    handshake (00h none, 01h DTS/DSR, 02h RTS/CTS, 04h XON/XOFF,
  5965.         FFh unknown/don't change)
  5966.  06h    BYTE    XON character, FFh unknown/don't change
  5967.  07h    BYTE    XOFF character, FFh unknown/don't change
  5968.  
  5969. (Table 2609)
  5970. Values for DR Multiuser DOS AUX parity:
  5971.  00h    none
  5972.  01h    odd
  5973.  02h    none
  5974.  03h    even
  5975.  04h    stick parity bit
  5976.  FFh    don't change/unknown
  5977.  
  5978. (Table 2610)
  5979. Values for DR Multiuser DOS AUX baud rate:
  5980.  00h    50 baud
  5981.  01h    62.5 baud
  5982.  02h    75 baud
  5983.  03h    110 baud
  5984.  04h    134.5 baud
  5985.  05h    150 baud
  5986.  06h    200 baud
  5987.  07h    300 baud
  5988.  08h    600 baud
  5989.  09h    1200 baud
  5990.  0Ah    1800 baud
  5991.  0Bh    2000 baud
  5992.  0Ch    2400 baud
  5993.  0Dh    3600 baud
  5994.  0Eh    4800 baud
  5995.  0Fh    7200 baud
  5996.  10h    9600 baud
  5997.  11h    19200 baud
  5998.  12h    38400 baud
  5999.  13h    56000 baud
  6000.  14h    76800 baud
  6001.  15h    115200 baud
  6002. --------O-E0----CLB1-------------------------
  6003. INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS
  6004.     CL = B1h
  6005.     DS:DX -> AUX device control block (see #2611)
  6006. Return: AX = status
  6007.         0000h successful
  6008.         control block updated
  6009.         FFFFh failed
  6010.         CX = error code
  6011. SeeAlso: INT E0/CL=B0h,INT E0/CL=B2h
  6012.  
  6013. Format of DR Multiuser DOS AUX device control block:
  6014. Offset    Size    Description    (Table 2611)
  6015.  00h    BYTE    function (00h get, 01h set)
  6016.  01h    BYTE    DTR state (00h low, 01h high, FFh unknown/don't change)
  6017.  02h    BYTE    RTS state (00h low, 01h high, FFh unknown/don't change)
  6018.  03h    BYTE    DSR state (00h low, 01h high, FFh unknown/don't change)
  6019.  04h    BYTE    CTS state (00h low, 01h high, FFh unknown/don't change)
  6020.  05h    BYTE    DCD state (00h low, 01h high, FFh unknown/don't change)
  6021.  06h    BYTE    RI state (00h inactive, 01h active, FFh unknown/don't change)
  6022. --------O-E0----CLB2-------------------------
  6023. INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE
  6024.     CL = B2h
  6025.     DX = duration of break in system ticks (0001h-FFFFh)
  6026. Return: AX = status
  6027.         0000h successful
  6028.         break signal completed
  6029.         FFFFh failed
  6030.         CX = error code
  6031. Note:    if the AUX device is currently owned by another process, this call will
  6032.       block until the device becomes available
  6033. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  6034. --------O-E0----CLBD-------------------------
  6035. INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION
  6036.     CL = BDh
  6037.     DX = delay in system ticks
  6038. Return: after the delay elapses
  6039. Notes:    the length of a system tick is installation-dependent (typically
  6040.       1/50 or 1/60 second); the length may be determined by reading the
  6041.       TICKSPERSEC value from the system data segment
  6042.     the actual delay before the process is rescheduled to run may be up to
  6043.       one tick longer than requested; the delay between rescheduling and
  6044.       actual execution cannot be predicted if higher-priority processes
  6045.       are awaiting a turn at the CPU
  6046. SeeAlso: INT 15/AH=86h,INT 1A/AX=FF01h,INT 2F/AX=1224h,INT 62/AX=0096h
  6047. --------g-E00000-----------------------------
  6048. INT E0 - PCROBOTS v1.41 - "SWAPTASK" - END CURRENT ROBOT'S TURN
  6049.     AX = 0000h
  6050. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  6051.       which specially-written .COM or .EXE programs form robots battling
  6052.       each other in a user-defined arena
  6053. --------g-E00001-----------------------------
  6054. INT E0 - PCROBOTS v1.41 - "MOVEMENT" - START MOVING
  6055.     AX = 0001h
  6056.     BX = speed (0-maximum for robot)
  6057.     CX = direction (0-359 degrees)
  6058. Notes:    the speed will change to the specified value at the maximum
  6059.       acceleration the robot is capable of; if the robot is already moving
  6060.       faster than its maximum maneuverability speed, it will not be able
  6061.       to change direction
  6062.     this call also terminates the current robot's turn
  6063. SeeAlso: AX=0000h,AX=0002h,AX=0003h
  6064. --------g-E00002-----------------------------
  6065. INT E0 - PCROBOTS v1.41 - "SCAN" - SCAN FOR OTHER ROBOTS IN THE GIVEN DIRECTION
  6066.     AX = 0002h
  6067.     BX = direction (0-359 degrees)
  6068.     CX = resolution (0-45 degrees)
  6069. Return: AX = status
  6070.         FFFFh if nothing detected
  6071.         else robot ID (0-19)
  6072.         BX = range to detected robot
  6073. Notes:    the scan searches within CX degrees to either side of the specified
  6074.       direction
  6075.     the scanner will see right through walls, but shells will not pass
  6076.       through walls
  6077.     this call also terminates the current robot's turn
  6078. SeeAlso: AX=0000h,AX=0001h,AX=0003h
  6079. --------g-E00003-----------------------------
  6080. INT E0 - PCROBOTS v1.41 - "SHOOT" - FIRE A SHELL AT ANOTHER ROBOT
  6081.     AX = 0003h
  6082.     BX = direction (0-359 degrees)
  6083.     CX = range (0-700)
  6084. Return: AX = status (0000h not fired, else ID of shell fired)
  6085. Notes:    up to seven shells may be in flight for a robot at one time; the cannon
  6086.       takes 50 ticks to reload
  6087.     this call also terminates the current robot's turn
  6088. SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=002Ch
  6089. --------g-E00010-----------------------------
  6090. INT E0 - PCROBOTS v1.41 - "GETXY" - GET ROBOT'S CURRENT POSITION
  6091.     AX = 0010h
  6092. Return: BX = current X coordinate (0-999)
  6093.     CX = current Y coordinate (0-999)
  6094. --------g-E00011-----------------------------
  6095. INT E0 - PCROBOTS v1.41 - "TRANSMIT" - SEND DATA TO ANOTHER ROBOT
  6096.     AX = 0011h
  6097.     BX = target robot ID
  6098.     CX = data to be sent
  6099. Return: AX = status (0000h data could not be sent, 0001h data sent)
  6100. Note:    this call costs one unit of battery power
  6101. --------g-E00012-----------------------------
  6102. INT E0 - PCROBOTS v1.41 - "RECEIVE" - GET DATA FROM OTHER ROBOTS
  6103.     AX = 0012h
  6104. Return: AX = status
  6105.         0000h no data available
  6106.         0001h data retrieved
  6107.         BX = sender's ID
  6108.         CX = data
  6109. Note:    each robot has a 20-word receive FIFO; if the FIFO is full, other
  6110.       robots will be unable to send more data until some is read
  6111. --------g-E00013-----------------------------
  6112. INT E0 - PCROBOTS v1.41 - "DAMAGE" - DETERMINE HOW MUCH DAMAGE SUSTAINED
  6113.     AX = 0013h
  6114. Return: BX = damage status
  6115. Note:    the initial value depends on configuration, but is typically 100; as
  6116.       the robot is damaged, it decreases
  6117. --------g-E00014-----------------------------
  6118. INT E0 - PCROBOTS v1.41 - "SPEED" - DETERMINE HOW FAST ROBOT IS MOVING
  6119.     AX = 0014h
  6120. Return: BX = current speed
  6121. --------g-E00015-----------------------------
  6122. INT E0 - PCROBOTS v1.41 - "BATTERY" - DETERMINE HOW MUCH BATTERY POWER LEFT
  6123.     AX = 0015h
  6124. Return: BX = current battery charge
  6125. Note:    the battery starts off with 1000 units of charge, and is constantly
  6126.       being charged by solar panels and constantly discharged by motion;
  6127.       the battery is charged at 4 units per turn and discharged at
  6128.       0.1*speed units per turn.
  6129. --------g-E00016-----------------------------
  6130. INT E0 - PCROBOTS v1.41 - "TICKS" - DETERMINE HOW LONG SINCE GAME STARTED
  6131.     AX = 0016h
  6132. Return: BX:CX = number of game ticks elapsed (not related to real time)
  6133. --------g-E00017-----------------------------
  6134. INT E0 - PCROBOTS v1.41 - "L_SIN" - GET SCALED SINE OF AN ANGLE
  6135.     AX = 0017h
  6136.     BX = angle (0-359 degrees)
  6137. Return: BX:CX = 100000*sine of angle
  6138. SeeAlso: AX=0018h,AX=0019h,AX=001Ah,AX=001Bh
  6139. --------g-E00018-----------------------------
  6140. INT E0 - PCROBOTS v1.41 - "L_COS" - GET SCALED COSINE OF AN ANGLE
  6141.     AX = 0018h
  6142.     BX = angle (0-359 degrees)
  6143. Return: BX:CX = 100000*cosine of angle
  6144. SeeAlso: AX=0017h,AX=0019h,AX=001Ah
  6145. --------g-E00019-----------------------------
  6146. INT E0 - PCROBOTS v1.41 - "L_TAN" - GET SCALED TANGENT OF AN ANGLE
  6147.     AX = 0019h
  6148.     BX = angle (0-359 degrees)
  6149. Return: BX:CX = 100000*tangent of angle
  6150. SeeAlso: AX=0017h,AX=0018h,AX=001Ah
  6151. --------g-E0001A-----------------------------
  6152. INT E0 - PCROBOTS v1.41 - "L_ATAN" - GET ANGLE GIVEN SCALED TANGENT
  6153.     AX = 001Ah
  6154.     BX:CX = 100000*tangent of an angle
  6155. Return: AX = angle (-90 to +90 degrees)
  6156. SeeAlso: AX=0017h,AX=0018h,AX=0019h
  6157. --------g-E0001B-----------------------------
  6158. INT E0 - PCROBOTS v1.41 - "SQRT" - DETERMINE SQUARE ROOT OF A NUMBER 
  6159.     AX = 001Bh
  6160.     BX:CX = value
  6161. Return: BX:CX = square root
  6162. SeeAlso: AX=0017h
  6163. --------g-E0001C-----------------------------
  6164. INT E0 - PCROBOTS v1.41 - "SET_PATTERN" - SPECIFY ROBOT'S DISPLAY IMAGE
  6165.     AX = 001Ch
  6166.     BX:CX -> pattern array
  6167. Note:    the pattern array consists of five bytes, the low five bits of each
  6168.       specifying the bit pattern for one line of the robot's screen display
  6169. --------g-E0001D-----------------------------
  6170. INT E0 - PCROBOTS v1.41 - "DEBUG_FLAG" - SET/CLEAR MARKERS NEXT TO ROBOT'S NAME
  6171.     AX = 001Dh
  6172.     BX = flag number (0 or 1)
  6173.     CX = new value (0 reset, 1 set)
  6174. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  6175.       which specially-written .COM or .EXE programs form robots battling
  6176.       each other in a user-defined arena
  6177. Note:    the two flag markers may be used for any purpose, typically for
  6178.       debugging to provide a visual display of progress
  6179. --------g-E0001E-----------------------------
  6180. INT E0 - PCROBOTS v1.41 - "BUY_ARMOUR" - BUY OR SELL ARMOR FOR ROBOT
  6181.     AX = 001Eh
  6182.     BX = number of armor units to buy (negative to sell)
  6183. Note:    each armor unit is worth 50 battery units; the robot's armor rating
  6184.       will not go above its initial rating, so attempts to purchase more
  6185.       will waste battery units
  6186. SeeAlso: AX=001Fh
  6187. --------g-E0001F-----------------------------
  6188. INT E0 - PCROBOTS v1.41 - "BUY_SHELLS" - BUY ADDITIONAL CANNON SHELLS
  6189.     AX = 001Fh
  6190.     BX = number of shells to buy
  6191. Note:    each shell costs ten battery units
  6192. SeeAlso: AX=001Eh,AX=0020h
  6193. --------g-E00020-----------------------------
  6194. INT E0 - PCROBOTS v1.41 - "SHELLS LEFT" - DETERMINE HOW MANY SHELLS ROBOT HAS
  6195.     AX = 0020h
  6196. Return: BX = number of shells remaining
  6197. SeeAlso: AX=001Fh
  6198. --------g-E00021-----------------------------
  6199. INT E0 - PCROBOTS v1.41 - "GET LOCAL MAP"
  6200.     AX = 0021h
  6201.     BX:CX -> 81-byte buffer for map (see #2612)
  6202. Return: buffer filled with 9x9 area of map centered on robot's position
  6203.  
  6204. (Table 2612)
  6205. Values for PCROBOTS map squares:
  6206.  2Eh '.' empty square
  6207.  44h 'D' damaging trap
  6208.  52h 'R' refueling point
  6209.  58h 'X' wall
  6210. --------g-E00022-----------------------------
  6211. INT E0 - PCROBOTS v1.41 - "INVISIBILITY" - CONTROL ROBOT'S INVISIBILITY DEVICE
  6212.     AX = 0022h
  6213.     BX = new state (0000h become visible, 0001h become invisible)
  6214. Notes:    this function has no effect if the robot is not capable of invisibility
  6215.     the robot can only stay invisible for 100 turns, after which it will
  6216.       automatically become visible; it must also be remain visible for
  6217.       as many turns as it was invisible before it can turn invisible
  6218.       again
  6219. SeeAlso: AX=0024h,AX=0080h
  6220. --------g-E00023-----------------------------
  6221. INT E0 - PCROBOTS v1.41 - "GET_SHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
  6222.     AX = 0023h
  6223. Return: BX = status of last shell to land
  6224.         0000h missed completely
  6225.         0001h hit a wall
  6226.         0002h hit a robot within 50-square radius
  6227.         0003h hit a robot within 25-square radius
  6228.         0004h hit a robot within 5-square radius
  6229. --------g-E00024-----------------------------
  6230. INT E0 - PCROBOTS v1.41 - "IS_INVISIBLE" - DETERMINE WHETHER ROBOT IS INVISIBLE
  6231.     AX = 0024h
  6232. Return: BX = visibility (0000h visible, 0001h invisible)
  6233. SeeAlso: AX=0022h,AX=0080h
  6234. --------g-E00025-----------------------------
  6235. INT E0 - PCROBOTS v1.41 - "L_ATAN2" - GET ARCTANGENT
  6236.     AX = 0025h
  6237.     BX = Y
  6238.     CX = X
  6239. Return: AX = angle (arctangent of Y/X)
  6240. --------g-E00026-----------------------------
  6241. INT E0 - PCROBOTS v1.41 - "GET_ROBOT_ID" - DETERMINE CURRENT ROBOT'S IDENTIFIER
  6242.     AX = 0026h
  6243. Return: AX = robot ID
  6244. --------g-E00027-----------------------------
  6245. INT E0 - PCROBOTS v1.41 - "REGISTER_IFF" - REGISTER FRIEND/FOE IDENT STRING
  6246.     AX = 0027h
  6247.     BX:CX = ASCIZ IFF string
  6248. Note:    the IFF string may only be set once
  6249. SeeAlso: AX=0028h,AX=0029h
  6250. --------g-E00028-----------------------------
  6251. INT E0 - PCROBOTS v1.41 - "CHECK_IFF" - QUERY FRIEND/FOE IDENTIFICATION STRING
  6252.     AX = 0028h
  6253.     BX = robot ID to test
  6254. Return: AX = status
  6255.         0000h IFF strings match
  6256.         0001h IFF strings differ or invalid robot ID
  6257. SeeAlso: AX=0027h
  6258. --------g-E00029-----------------------------
  6259. INT E0 - PCROBOTS v1.41 - "REGISTER_NAME" - SPECIFY ROBOT'S NAME
  6260.     AX = 0029h
  6261.     BX:CX -> ASCIZ name string
  6262. Note:    the name may only be set once
  6263. SeeAlso: AX=0027h,AX=002Ah
  6264. --------g-E0002A-----------------------------
  6265. INT E0 - PCROBOTS v1.41 - "FIND_NAME" - SEARCH FOR ROBOT WITH GIVEN NAME
  6266.     AX = 002Ah
  6267.     BX:CX -> ASCIZ name string
  6268.     DX = first ID to check
  6269. Return: AX = robot ID or FFFFh if no robot with specified name
  6270. SeeAlso: AX=0028h,AX=0029h,AX=002Bh
  6271. --------g-E0002B-----------------------------
  6272. INT E0 - PCROBOTS v1.41 - "GET_TEAM_ID" - DETERMINE TEAM MEMBERSHIP OF ROBOT
  6273.     AX = 002Bh
  6274. Return: AX = team ID (0-2) or FFFFh if 'loner'
  6275. SeeAlso: AX=0029h
  6276. --------g-E0002C-----------------------------
  6277. INT E0 - PCROBOTS v1.41 - "GET_ASHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
  6278.     AX = 002Ch
  6279.     BX = shell ID
  6280. Return: AX = status
  6281.         0000h missed completely
  6282.         0001h hit a wall
  6283.         0002h hit a robot within a 50-square radius
  6284.         0003h hit a robot within a 25-square radius
  6285.         0004h hit a robot within a 5-square radius
  6286.         0005h shell not known (too old or not yet fired)
  6287.         0006h shell still in flight
  6288. SeeAlso: AX=0003h
  6289. --------g-E0002D-----------------------------
  6290. INT E0 - PCROBOTS v1.41 - "REGISTER_X" - SELECT AUTOMATIC X POSITION UPDATES
  6291.     AX = 002Dh
  6292.     BX:CX -> X word variable
  6293. Return: AX = status (0001h OK, 0000h problem with address)
  6294. Note:    after this call, PCROBOTS will automatically update the specified
  6295.       word whenever the robot moves
  6296. SeeAlso: AX=002Eh
  6297. --------g-E0002E-----------------------------
  6298. INT E0 - PCROBOTS v1.41 - "REGISTER_Y" - SELECT AUTOMATIC Y POSITION UPDATES
  6299.     AX = 002Eh
  6300.     BX:CX -> Y word variable
  6301. Return: AX = status (0001h OK, 0000h problem with address)
  6302. Note:    after this call, PCROBOTS will automatically update the specified
  6303.       word whenever the robot moves
  6304. SeeAlso: AX=002Dh
  6305. --------g-E00080-----------------------------
  6306. INT E0 - PCROBOTS v1.41 - "CONFIGURE" - CUSTOMIZE ROBOT
  6307.     AX = 0080h
  6308.     BX = basic configuration (see #2613)
  6309.     CX = advanced configuration (see #2614)
  6310. Return: AX = status (0001h OK, 0000h not first call in program)
  6311. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  6312.       which specially-written .COM or .EXE programs form robots battling
  6313.       each other in a user-defined arena
  6314. Notes:    a maximum of ten points may be allocated to the robot; if you attempt
  6315.       to allocate more, some items will be given a value of zero.  If this
  6316.       function is not called, each attribute is set to the default value
  6317.       of 2.
  6318.     if the invisibility option is chosen, the robot will start with only
  6319.       900 cannon shells instead of the default 1000
  6320.  
  6321. Bitfields for PCROBOTS basic configuration:
  6322. Bit(s)    Description    (Table 2613)
  6323.  0-3    maximum speed (0-4 = 50,75,100,150,200)
  6324.  4-7    maneuverability (0-4 = 20%,35%,50%,75%,100%)
  6325.  8-11    cannon range (0-4 = 300,500,700,1000,1500)
  6326.  12-15    robot armor (0-4 = 50,75,100,150,200)
  6327.  
  6328. Bitfields for PCROBOTS advanced configuration:
  6329. Bit(s)    Description    (Table 2614)
  6330.  0-2    robot acceleration (0-4 = 5,7,10,15,20)
  6331.  3    capable of invisibility
  6332. --------r-E1---------------------------------
  6333. INT E1 - IBM ROM BASIC - used while in interpreter
  6334. Notes:    called by ROM BASIC
  6335.     BASIC.COM/BASICA.COM do not restore vector on termination
  6336. --------N-E1---------------------------------
  6337. INT E1 - PC Cluster Disk Server Information (NOT A VECTOR!)
  6338. Desc:    points at a data table
  6339. SeeAlso: INT E2
  6340. --------O-E1---------------------------------
  6341. INT E1 - MP/M-86, - ALTERNATE CP/M-86 FUNCTION CALLS
  6342.     CL = function number (see #2602,#2603 at INT E0"CP/M")
  6343.     DS,DX = parameters
  6344. Return: as appropriate for function
  6345.     CX is often the error code (see #2604 at INT E0"CP/M")
  6346. Desc:    used by some applications which alter CP/M functions while running a
  6347.       child program, to store the original INT E0 vector before
  6348.       intercepting INT E0
  6349. SeeAlso: INT E0"CP/M"
  6350. --------r-E2---------------------------------
  6351. INT E2 - IBM ROM BASIC - used while in interpreter
  6352. Notes:    called by ROM BASIC
  6353.     BASIC.COM/BASICA.COM do not restore vector on termination
  6354. --------N-E2---------------------------------
  6355. INT E2 - PC Cluster Program - RELOCATED INT 1C
  6356. SeeAlso: INT 1C
  6357. --------r-E3---------------------------------
  6358. INT E3 - IBM ROM BASIC - used while in interpreter
  6359. Notes:    called by ROM BASIC
  6360.     BASIC.COM/BASICA.COM do not restore vector on termination
  6361. --------r-E40005-----------------------------
  6362. INT E4 - Logitech Modula v2.0 - MonitorEntry
  6363.     AX = 0005h
  6364.     BX = priority
  6365. SeeAlso: AX=0006h
  6366. --------r-E40006-----------------------------
  6367. INT E4 - Logitech Modula v2.0 - MonitorExit
  6368.     AX = 0006h
  6369. SeeAlso: AX=0005h
  6370. --------r-E4---------------------------------
  6371. INT E4 - IBM ROM BASIC - used while in interpreter
  6372. Notes:    called by ROM BASIC
  6373.     BASIC.COM/BASICA.COM do not restore vector on termination
  6374. --------r-E5---------------------------------
  6375. INT E5 - IBM ROM BASIC - used while in interpreter
  6376. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6377.     BASIC.COM/BASICA.COM do not restore vector on termination
  6378. --------r-E6---------------------------------
  6379. INT E6 - IBM ROM BASIC - used while in interpreter
  6380. Notes:    called by ROM BASIC
  6381.     BASIC.COM/BASICA.COM do not restore vector on termination
  6382. --------r-E7---------------------------------
  6383. INT E7 - IBM ROM BASIC - used while in interpreter
  6384. Notes:    called by ROM BASIC
  6385.     BASIC.COM/BASICA.COM do not restore vector on termination
  6386. --------r-E8---------------------------------
  6387. INT E8 - IBM ROM BASIC - used while in interpreter
  6388. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6389.     BASIC.COM/BASICA.COM do not restore vector on termination
  6390. --------r-E9---------------------------------
  6391. INT E9 - IBM ROM BASIC - used while in interpreter
  6392. Notes:    called by ROM BASIC
  6393.     BASIC.COM/BASICA.COM do not restore vector on termination
  6394. --------r-EA---------------------------------
  6395. INT EA - IBM ROM BASIC - used while in interpreter
  6396. Notes:    called by ROM BASIC
  6397.     BASIC.COM/BASICA.COM do not restore vector on termination
  6398. --------r-EB---------------------------------
  6399. INT EB - IBM ROM BASIC - used while in interpreter
  6400. Notes:    called by ROM BASIC
  6401.     BASIC.COM/BASICA.COM do not restore vector on termination
  6402. --------r-EC---------------------------------
  6403. INT EC - IBM ROM BASIC - used while in interpreter
  6404. Notes:    called by ROM BASIC
  6405.     BASIC.COM/BASICA.COM do not restore vector on termination
  6406. --------N-EC---------------------------------
  6407. INT EC - used by Alloy NTNX
  6408. --------r-EC---------------------------------
  6409. INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR
  6410.     AX = function number (0000h to 0140h)
  6411.     STACK:    DWORD address to return to
  6412.         any arguments required by function
  6413. Return: STACK:    return address popped, but otherwise unchanged
  6414. Desc:    this is the interface from applications to the runtime system by Exact
  6415.       Automatisering B.V. of the Netherlands.  By using this interrupt,
  6416.       it can provide DLL-style capabilities under MS-DOS.
  6417. Note:    the interrupt handler removes the return address and flags placed on
  6418.       the stack by the INT EC, then jumps to the appropriate function
  6419. --------r-ED---------------------------------
  6420. INT ED - IBM ROM BASIC - used while in interpreter
  6421. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6422.     BASIC.COM/BASICA.COM do not restore vector on termination
  6423.     INT 80 through INT ED are modified but not restored by Direct Access
  6424.       v4.0, and may be left dangling by other programs written with the
  6425.       same version of compiled BASIC
  6426. SeeAlso: INT EC"BASIC",INT EE"BASIC"
  6427. --------r-EE---------------------------------
  6428. INT EE - IBM ROM BASIC - used while in interpreter
  6429. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6430.     BASIC.COM/BASICA.COM do not restore vector on termination
  6431. SeeAlso: INT ED"BASIC",INT EE"BASIC"
  6432. --------r-EF---------------------------------
  6433. INT EF - BASIC - ORIGINAL INT 09 VECTOR
  6434. Note:    BASIC.COM/BASICA.COM do not restore vector on termination
  6435. SeeAlso: INT EE"BASIC",INT F0"BASIC"
  6436. --------O-EF----CX0473-----------------------
  6437. INT EF - GEM - INTERFACE
  6438.     CX = 0473h
  6439.     DS:DX -> GEM parameter block
  6440. --------r-F0---------------------------------
  6441. INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR
  6442. Note:    BASICA.COM does not restore vector on termination
  6443. SeeAlso: INT EF"BASIC"
  6444. --------*-F1---------------------------------
  6445. INT F1 - reserved for user interrupt
  6446. --------s-F1---------------------------------
  6447. INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
  6448.     DS:BX -> '$'-terminated text string
  6449. Program: SPEECH.COM is a resident text-to-speech converter by Douglas Sisco
  6450. --------s-F1---------------------------------
  6451. INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
  6452. SeeAlso: INT F2"SPEECH"
  6453. --------U-F1---------------------------------
  6454. INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS
  6455. Return: AX:BX -> data area
  6456. Program: AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1
  6457.       and COM2 in software
  6458. Note:    The installation check consists of testing for the following signature
  6459.       immediately preceding the interrupt handler: "JWBtvv" where 't' is
  6460.       either "A" for AQUEDUCT or "P" for PIPELINE and "vv" is a two-digit
  6461.       version number
  6462. Index:    installation check;AQUEDUCT|installation check;PIPELINE
  6463. --------N-F1---------------------------------
  6464. INT F1 - NetWare Remote Boot - INSTALLATION CHECK (NOT A VECTOR!)
  6465. Note:    if this vector contains the value 5774654Eh ("NetW"), the remote boot
  6466.       BIOS extension is active, and access to the floppy disk is redirected
  6467.       to an image file in the server's SYS:LOGIN directory
  6468. ----------F1---------------------------------
  6469. INT F1 - Common ISDN API (CAPI) v1.1
  6470.     AH = function
  6471.         01h API-REGISTER
  6472.         02h API-RELEASE
  6473.         03h API-PUT-MESSAGE
  6474.         04h API-GET-MESSAGE
  6475.         05h API-SET-SIGNAL
  6476.         06h API-DEINSTALL
  6477.         F0h API-GET-MANUFACTURER
  6478.         F1h API-GET-VERSION
  6479.         F2h API-GET-SERIAL-NUMBER
  6480.         FFh API-MANUFACTURER (vendor-specific functions)
  6481.     information arrived too late for details to be included in this release
  6482. Return: AX = result
  6483. Range:    INT 00 to INT FF, selectable by program parameter
  6484. Notes:    the caller is required to provide at least 512 bytes of stack space
  6485.     the CAPI interrupt handler begins with a header which is nearly
  6486.       identical to the IBM Interrupt Sharing Protocol header
  6487.       (see #1363 at INT 2D), except that the short jump instruction to
  6488.       a hardware reset handler at offset 09h is replaced by the signature
  6489.       bytes "IA"
  6490. SeeAlso: INT F1"v2.0"
  6491. ----------F1---------------------------------
  6492. INT F1 - Common ISDN API (CAPI) v2.0
  6493.     AL = function
  6494.         01h CAPI_REGISTER
  6495.         02h CAPI_RELEASE
  6496.         03h CAPI_PUT_MESSAGE
  6497.         04h CAPI_GET_MESSAGE
  6498.         05h CAPI_SET_SIGNAL
  6499.         F0h CAPI_GET_MANUFACTURER
  6500.         F1h CAPI_GET_VERSION
  6501.         F2h CAPI_GET_SERIAL_NUMBER
  6502.         F3h CAPI_GET_PROFILE
  6503.         FFh CAPI_MANUFACTURER (vendor-specific functions)
  6504.     AH = CAPI version * 10 (14h = 2.0)
  6505.     information arrived too late for details to be included in this release
  6506. Return: AX = result
  6507. Range:    INT 00 to INT FF, selectable by program parameter
  6508. Notes:    the caller is required to provide at least 512 bytes of stack space
  6509.     the CAPI v2.0 interrupt handler begins with a header (see #2615) which
  6510.       is similar to the IBM Interrupt Sharing Protocol header
  6511.       (see #1363 at INT 2D), yet different from both the ISP header and
  6512.       the CAPI v1.1 header
  6513. SeeAlso: INT F1"v1.1"
  6514.  
  6515. Format of CAPI v2.0 interrupt handler entry point:
  6516. Offset    Size    Description    (Table 2615)
  6517.  00h  2 BYTEs    short jump to actual start of interrupt handler, immediately
  6518.           following this data block (EBh 0Fh)
  6519.  02h    DWORD    address of next handler in chain
  6520.  06h    WORD    signature 424Bh
  6521.  08h    BYTE    EOI flag (80h)
  6522.         80h primary hardware interrupt handler (will issue EOI)
  6523.  09h  2 BYTEs    reserved (0)
  6524.         (is short jump to hardware reset routine in ISP header)
  6525.  0Bh  4 BYTEs    signature "CAPI"
  6526.  0Fh  2 BYTEs    two-digit CAPI version number in ASCII ('20')
  6527. SeeAlso: #1363 at INT 2D
  6528. --------v-F1---------------------------------
  6529. INT F1 - VIRUS - "Violetta" - ???
  6530. Note:    used but not chained by virus
  6531. SeeAlso: INT E0"VIRUS",INT FF"VIRUS"
  6532. --------*-F2---------------------------------
  6533. INT F2 - reserved for user interrupt
  6534. --------s-F2---------------------------------
  6535. INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
  6536. SeeAlso: INT F1"SPEECH"
  6537. ----------F2---------------------------------
  6538. INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API
  6539.     AH = function number (see #2616)
  6540.     ???
  6541. Return: ???
  6542. Program: ImageCapture is a product of International Computers
  6543. SeeAlso: INT F3"ICCTSR"
  6544.  
  6545. (Table 2616)
  6546. Values for ImageCapture function:
  6547.  01h    power up
  6548.  02h    power down
  6549.  03h    set controls
  6550.  04h    capture image
  6551.  05h    display image
  6552.  06h    read file
  6553.  07h    write file
  6554.  08h    write array
  6555.  09h    read pixel
  6556.  0Ah    write pixel
  6557.  0Bh    check if VGA present
  6558.  0Ch    set video mode
  6559.  0Dh    check for keystroke
  6560.  0Eh    delay
  6561. --------*-F3---------------------------------
  6562. INT F3 - reserved for user interrupt
  6563. --------s-F3---------------------------------
  6564. INT F3 - SoundBlaster - POINTER TO ECHO VALUE
  6565. Note:    this is not a vector, but a pointer to a DWORD containing the echo
  6566.       value selected with SET-ECHO.EXE
  6567. SeeAlso: INT 2F/AX=FBFBh
  6568. ----------F3---------------------------------
  6569. INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR
  6570. Program: ImageCapture is a product of International Computers
  6571. SeeAlso: INT F2"ICCTSR"
  6572. --------*-F4---------------------------------
  6573. INT F4 - reserved for user interrupt
  6574. --------T-F4---------------------------------
  6575. INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK
  6576. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT FE"DoubleDOS"
  6577. --------*-F5---------------------------------
  6578. INT F5 - reserved for user interrupt
  6579. --------T-F5---------------------------------
  6580. INT F5 - DoubleDOS - ???
  6581. --------*-F6---------------------------------
  6582. INT F6 - reserved for user interrupt
  6583. --------T-F6---------------------------------
  6584. INT F6 - DoubleDOS - ???
  6585. --------*-F7---------------------------------
  6586. INT F7 - reserved for user interrupt
  6587. --------T-F7---------------------------------
  6588. INT F7 - DoubleDOS - ???
  6589. ----------F700-------------------------------
  6590. INT F7 - FSBBS 2.0 - CONFIGURATION RECORD
  6591.     AH = 00h
  6592.     AL = function
  6593.         00h get configuration record
  6594.         Return: DS:DX -> configuration record
  6595.         01h set configuration record
  6596.         02h get path for option
  6597.         DS:DX -> option name
  6598.         Return: DS:DX -> path
  6599.         03h determine whether configuration record set
  6600.         Return: AX = status
  6601.                 0000h set
  6602.                 0001h not yet set
  6603.         04h get link state
  6604.         Return: AX = state
  6605.                 0000h unlinked
  6606.                 0001h linked
  6607. Notes:    this information is preliminary and still subject to change
  6608.     all of the INT F7 calls for FSBBS are used for interprogram
  6609.       communication between the BBS kernel and the programs it spawns
  6610. SeeAlso: AH=01h
  6611. ----------F701-------------------------------
  6612. INT F7 - FSBBS 2.0 - USER RECORD
  6613.     AH = 01h
  6614.     AL = function
  6615.         00h get user record for user currently online
  6616.         Return: DS:DX -> user record
  6617.         01h set user record
  6618.         DS:DX -> user record
  6619. SeeAlso: AH=00h,AH=02h
  6620. ----------F702-------------------------------
  6621. INT F7 - FSBBS 2.0 - GET ACCOUNT NAME
  6622.     AH = 02h
  6623. Return: DS:DX -> 8-character blank-padded account name
  6624. SeeAlso: AH=01h
  6625. ----------F703-------------------------------
  6626. INT F7 - FSBBS 2.0 - TERMINAL NUMBER
  6627.     AH = 03h
  6628.     AL = function
  6629.         00h get terminal index number
  6630.         Return: DX = index number
  6631.         01h set terminal index number
  6632.         DX = terminal index
  6633. ----------F704-------------------------------
  6634. INT F7 - FSBBS 2.0 - PASSDATA BUFFER
  6635.     AH = 04h
  6636.     AL = function
  6637.         00h get PassData buffer contents
  6638.         DS:DX -> buffer for PassData contents
  6639.         01h set PassData contents
  6640.         DS:DX -> buffer containing new PassData
  6641.         CH = length of data in buffer
  6642. ----------F705-------------------------------
  6643. INT F7 - FSBBS 2.0 - TIMER FUNCTIONS
  6644.     AH = 05h
  6645.     AL = function
  6646.         00h get time remaining
  6647.         Return: DX = number of minutes remaining
  6648.         01h get current time
  6649.         Return: DS:DX -> 8-character time string
  6650.         02h increment time
  6651.         DX = number of additional minutes
  6652.         03h decrement time
  6653.         DX = number of minutes
  6654. SeeAlso: AH=06h
  6655. ----------F706-------------------------------
  6656. INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY
  6657.     AH = 06h
  6658.     AL = function
  6659.         00h determine whether function is available
  6660.         DX = index of function
  6661.         01h set function availability
  6662.         DX = index of function
  6663.         ???
  6664. SeeAlso: AH=05h,AH=07h
  6665. ----------F707-------------------------------
  6666. INT F7 - FSBBS 2.0 - DUMP FUNCTIONS
  6667.     AH = 07h
  6668.     AL = function
  6669.         00h get current dump mode
  6670.         Return: DL = mode
  6671.         01h set dump mode
  6672.         DL = mode
  6673. SeeAlso: AH=06h
  6674. --------*-F8---------------------------------
  6675. INT F8 - reserved for user interrupt
  6676. --------h-F8---------------------------------
  6677. INT F8 - Sanyo MBC-550 - IRQ0 - 100 HZ INTERRUPT
  6678. SeeAlso: INT 08"IRQ0",INT F9"Sanyo",INT FA"Sanyo"
  6679. --------T-F8---------------------------------
  6680. INT F8 - DoubleDOS - ???
  6681. --------*-F9---------------------------------
  6682. INT F9 - reserved for user interrupt
  6683. --------T-F9---------------------------------
  6684. INT F9 - DoubleDOS - ???
  6685. --------h-F9---------------------------------
  6686. INT F9 - Sanyo MBC-550 - IRQ1 - ???
  6687. SeeAlso: INT 09"IRQ1",INT F8"Sanyo",INT FA"Sanyo"
  6688. --------*-FA---------------------------------
  6689. INT FA - reserved for user interrupt
  6690. --------h-FA---------------------------------
  6691. INT FA - Sanyo MBC-550 - IRQ2 - SERIAL PORT USART INTERRUPT
  6692. Note:    this vector is not used on the Tandy 1000TL
  6693. SeeAlso: INT 0A"IRQ2",INT F9"Sanyo",INT FB"Sanyo"
  6694. --------T-FA---------------------------------
  6695. INT FA - DoubleDOS - TURN OFF TIMESHARING
  6696. SeeAlso: INT 21/AH=EAh"DoubleDOS",INT FB"DoubleDOS"
  6697. --------*-FB---------------------------------
  6698. INT FB - reserved for user interrupt
  6699. --------h-FB---------------------------------
  6700. INT FB - Sanyo MBC-550 - IRQ3 - KEYBOARD USART RECEIVE INTERRUPT
  6701. SeeAlso: INT 0B"IRQ3",INT FA"Sanyo",INT FC"Sanyo"
  6702. --------T-FB---------------------------------
  6703. INT FB - DoubleDOS - TURN ON TIMESHARING
  6704. SeeAlso: INT 21/AH=EBh"DoubleDOS",INT FA"DoubleDOS"
  6705. --------*-FC---------------------------------
  6706. INT FC - reserved for user interrupt
  6707. --------T-FC---------------------------------
  6708. INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS
  6709. Return: ES = segment of display buffer
  6710. Desc:    determine the address of the virtual screen to which the program
  6711.       should write instead of the actual video memory, so that the
  6712.       multitasked programs do not interfere with each other's output
  6713. Note:    the display buffer may be moved if multitasking is enabled
  6714. SeeAlso: INT 21/AH=ECh"DoubleDOS",INT FB"DoubleDOS"
  6715. --------h-FC---------------------------------
  6716. INT FC - Sanyo MBC-550 - IRQ4 - ???
  6717. SeeAlso: INT 0C"IRQ4",INT FB"Sanyo",INT FD"Sanyo"
  6718. --------*-FD---------------------------------
  6719. INT FD - reserved for user interrupt
  6720. --------T-FD---------------------------------
  6721. INT FD - DoubleDOS - ???
  6722. --------h-FD---------------------------------
  6723. INT FD - Sanyo MBC-550 - IRQ5 - ???
  6724. SeeAlso: INT 0D"IRQ5",INT FC"Sanyo",INT FE"Sanyo"
  6725. --------S-FD---------------------------------
  6726. INT FD - TFPCX - INSTALLATION CHECK
  6727.     AH = function (see separate entries below)
  6728. Program: TFPCX is an interface between modem and terminal program for packet-
  6729.       radio communications
  6730. Notes:    the installation check consists of testing for the string "N5NX" three
  6731.       bytes beyond the interrupt handler; INT FD is the default, but may
  6732.       be changed, so the full installation check consists of scanning
  6733.       for the signature
  6734.     TFPCX returns AX=FFFFh on any unsupported function call
  6735. SeeAlso: AH=01h,AH=03h,AH=FEh
  6736. --------S-FD01-------------------------------
  6737. INT FD - TFPCX - TEST FOR CHARACTER WAITING
  6738.     AH = 01h
  6739. Return: AX = status
  6740.         0000h no characters waiting
  6741.         0001h character available for input
  6742. Program: TFPCX is an interface between modem and terminal program for packet-
  6743.       radio communications
  6744. SeeAlso: AH=02h
  6745. --------S-FD02-------------------------------
  6746. INT FD - TFPCX - GET CHARACTER
  6747.     AH = 02h
  6748. Return: AL = character
  6749. Notes:    this call is only allowed if AH=01h indicated that a character is
  6750.       available
  6751.     all available characters should be read before sending any additional
  6752.       characters
  6753. SeeAlso: AH=01h,AH=03h
  6754. --------S-FD03-------------------------------
  6755. INT FD - TFPCX - OUTPUT CHARACTER
  6756.     AH = 03h
  6757.     AL = character to send
  6758. SeeAlso: AH=02h
  6759. --------S-FDFE-------------------------------
  6760. INT FD - TFPCX - GET VERSION
  6761.     AH = FEh
  6762. Return: AH = major version
  6763.     AL = minor version
  6764. Program: TFPCX is an interface between modem and terminal program for packet-
  6765.       radio communications
  6766. SeeAlso: AH=01h,AH=03h
  6767. --------B-FE---------------------------------
  6768. INT FE - AT/XT286/PS50+ - destroyed by return from protected mode
  6769. Note:    the ROM BIOS uses 0030h:0100h as the initial stack on startup, which
  6770.       is the last fourth of the interrupt vector table.  If the processor
  6771.       is returned to real mode via a hardware reset (the only possibility
  6772.       on an 80286, though there are a number of ways of generating one),
  6773.       then the BIOS startup code stacks three words on its scratch stack
  6774.       before determining that a return to real mode has been requested.
  6775.       As a result, INT FE and INT FF are corrupted.
  6776. SeeAlso: INT FF"XT286"
  6777. --------T-FE---------------------------------
  6778. INT FE - DoubleDOS - GIVE UP TIME
  6779.     AL = number of 55ms time slices to give away
  6780. Return: after other program (if active) has run
  6781. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F4"DoubleDOS"
  6782. --------G-FE---------------------------------
  6783. INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER
  6784. SeeAlso: INT 3F
  6785. --------h-FE---------------------------------
  6786. INT FE - Sanyo MBC-550 - IRQ6 - ???
  6787. SeeAlso: INT 0E"IRQ6",INT FD"Sanyo",INT FF"Sanyo"
  6788. --------B-FF---------------------------------
  6789. INT FF - AT/XT286/PS50+ - destroyed by return from protected mode
  6790. Note:    (see INT FE"XT286")
  6791. SeeAlso: INT FE"XT286"
  6792. --------b-FF---------------------------------
  6793. INT FF - Z100 - WARM BOOT
  6794. SeeAlso: INT 40"Z100"
  6795. --------h-FF---------------------------------
  6796. INT FF - Sanyo MBC-550 - IRQ7 - ???
  6797. SeeAlso: INT 0F"IRQ7",INT FE"Sanyo"
  6798. --------Q-FF---------------------------------
  6799. INT FF U - QEMM-386.SYS v6.0+ - internal
  6800. Notes:    requires that a byte in the conventional-memory stub be set to the
  6801.       desired function number (00h through 0Ch)
  6802. SeeAlso: #2617
  6803.  
  6804. (Table 2617)
  6805. Values for QEMM internal functions:
  6806.  00h    reflect back to Virtual86-mode interrupt handler (default)
  6807.  01h    ???
  6808.  02h    access DR7???
  6809.  03h    QPI upcall (see INT 67/AH=3Fh)
  6810.  04h    ???
  6811.  05h    ???
  6812.  06h    INT 15/AH=87h
  6813.  07h    EMS services (see INT 67/AH=40h,INT 67/AH=5Dh)
  6814.  08h    ???
  6815.  09h    QEMM exception handler
  6816.  0Ah    XMS services (see INT 2F/AX=4310h)
  6817.  0Bh    Virtual DMA Services (see INT 4B/AX=8102h)
  6818.  0Ch    ???
  6819. --------v-FF---------------------------------
  6820. INT FF - VIRUS - "Violetta" - ???
  6821. Note:    used but not chained by virus
  6822. SeeAlso: INT E0"VIRUS",INT F1"VIRUS"
  6823. --------V-FF----BX0000-----------------------
  6824. INT FF - PC/FORTH - GRAPHICS API - VIDEO STATUS CHANGE
  6825.     BX = 0000h
  6826.     DS:SI -> FORTH program counter
  6827.     SS:BP -> FORTH parameter stack
  6828.     SS:SP -> FORTH return stack
  6829.     DS:DX -> FORTH video parameter area
  6830. Desc:    called to inform graphics driver of any status changes such as video
  6831.       mode changes, character color changes, graphics XOR mode turned on
  6832.       or off, etc.
  6833. --------V-FF---------------------------------
  6834. INT FF - PC/FORTH - GRAPHICS API
  6835.     BX = function number
  6836.         0001h function REDRAW
  6837.         0002h function !PEL
  6838.         0003h function @PEL
  6839.         0004h function LINE
  6840.         0005h function ARC
  6841.         0006h function @BLOCK
  6842.         0007h function !BLOCK
  6843.         0008h function FLOOD
  6844.     DS:SI -> FORTH program counter
  6845.     SS:BP -> FORTH parameter stack
  6846.     SS:SP -> FORTH return stack
  6847.     details of parameters not available
  6848. --------!---Admin----------------------------
  6849. Highest Table Number = 2617
  6850. --------!---FILELIST-------------------------
  6851. Please redistribute all of the files comprising the interrupt list (listed at
  6852. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  6853. quartet of archives named INTER45A through INTER45D (preferably the original
  6854. authenticated PKZIP archives), and the utility programs in a fifth archive
  6855. called INTER45E.ZIP.
  6856.  
  6857. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
  6858. --------!---CONTACT_INFO---------------------
  6859. Internet: ralf@telerama.lm.com
  6860. UUCP: {uunet,harvard}!telerama.lm.com!ralf
  6861. FIDO: Ralf Brown 1:129/26.1
  6862.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  6863.     unless you address it to me)
  6864. CIS:  >INTERNET:ralf@telerama.lm.com
  6865.